- 浏览: 444162 次
- 性别:
- 来自: 上海
文章分类
- 全部博客 (108)
- Ibatis (0)
- ZK (13)
- 设计模式 (3)
- Java编程 (21)
- 正则表达式 (2)
- 开发小续 (2)
- 杂谈 (1)
- 数据库 (6)
- Hibernate (6)
- Struts 2 (2)
- Spring (2)
- 版本控制 (4)
- Subversion (1)
- Myeclipse (1)
- EL (1)
- jsp (1)
- CAS (1)
- SSO (1)
- Restful Web Service (3)
- jersey (2)
- jersey与spring (1)
- web service框架 (1)
- 系统分析 (1)
- Subversion windows service (1)
- tomcat (1)
- PermGen Space (1)
- 编程心得 (1)
- google map api (1)
- springmvc (1)
- ajax (1)
- Hibernate QBC (1)
- oracle oracle10g (1)
- RBAC 权限设计 (1)
- springsecurity 3 (1)
- JPA (1)
- JPA j2ee (1)
- maven java (1)
- Jquery框架 UI框架 (1)
- printcss (1)
- java reflect 反射 (1)
- Jquery框架 UI框架 3scschool (1)
- collabnet Subversion (1)
- linux redhat (1)
- mysql (3)
- spring spring-data-jpa (1)
- Jquery AjaxForm (1)
- Jquery Map (1)
- linux (3)
- linux nginx openssl zlib pcre (1)
- linux jdk (1)
- 物联网技术 嵌入式 C# (1)
- oracle 数据库 (1)
- oracle (5)
- maven (1)
- java 定时器 (1)
- swing (1)
- java (2)
- 短信接口 (1)
- DBUtils (1)
- JDBC (1)
- javascript json (1)
- shiro (1)
- 权限系统 (1)
- 嵌入式 (1)
- 树莓派 (1)
- python (1)
- Github (1)
- 代码托管 (1)
- 产品设计 (2)
- 产品需求 (2)
- BRD (1)
- MRD (1)
- PRD (1)
- DRD (1)
- FRD (1)
- GIS (1)
- SOA (1)
- 网站资源 (1)
- 骆驼 (1)
- 黑客技术资源 (1)
- 网络安全资源 (1)
- 个人修炼 (1)
- Angular2 (1)
- Nodejs Krakenjs (1)
最新评论
-
GeorgeFeng:
学习啦,感谢
RBAC用户权限管理数据库设计 -
徜徉の小溪:
yuanliangding 写道请求进来时,创建的对象都不是由 ...
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
yuanliangding:
请求进来时,创建的对象都不是由Spring弄出来的。。
基于RESTful Web Service 的Jersey框架与Spring完美整合 -
Ripin_Yan:
我已经按照你的xml这个顺序配置了,结果还是中文乱码。是还有什 ...
SpringMVC使用注解@ResponseBody返回json中文乱码 -
王静娜:
作者的实体图画的很好很有条理,但是个人觉得用户组对应的是资源, ...
RBAC用户权限管理数据库设计
struts2类型转换机制
package com.opensymphony.xwork2;
public class ActionSupport implements Action,ValidationAware,Validateable,TextProvider,LocalProvider,Serializable,ContinuableObject{
protected transient static final Log LOG = LogFactory.getLog(ActionSupport.class);
private transient final TextProvider textProvider = new TextProviderSupport(getClass(),this);
private final ValidationAwareSupport validationAware = new ValidationAwareSupport();
//设置action级别的所有错误
public void setActionError(Collection errorMessages){
validationAware.setActionErrors(errorMessages);
}
//获得action级别的错误集合
public Collection getActionErrors(){
return validationAware.getActionErrors();
}
public Map getErrors(){
return getFieldErrors();
}
public Locale getLocale(){
return ActionContext.getContext().getLocale();
}
public String getText(String aTextName){
return textProvider.getText(aTextName);
}
//向action添加一个action级别的错误
public void addActionError(String anErrorMessage){
validationAware.addActionError(anErrorMessage);
}
public String doinput() throws Exception(){
return INPUT;
}
public boolean hasActionErrors(){
return validationAware.hasActionErrors();
}
//清除所有的错误信息
public void clearErrorAndMessage(){
validationAware.clearErrorAndMessages();
}
public void validate(){
}
public void pause(String result){
}
}
void addActionError(String anErrorMessage)---向action添加一个action级别的错误
void addActionMessage(String aMessage)--向action添加一个action级别的信息
void addFieldError(String fieldName,String errorMessage)--为指定的域添加一个出错信息
void clearErrorsAndMessages()--清除所有的错误和信息
String execute()--其缺省的实现仅返回SUCCESS
Collection getActionErrors()--获得Action级别的错误集合
Collection getActionMessages()--获得Action级别的信息集合
Map getText(String aTextName)--获得与域相关的错误信息集合
String getText(String aTextName)--基于键指定的键值,不存在则返回NULL
String getText(String aTextName,List args)--基于键和附加参数获得指定的键值,不存在则返回NULL
String getText(String aTextName,String defaultValue)--基于键获得指定的键值,不存在则返回缺省值
boolean hasActionErrors()--是否有Action级别的错误
boolean hasActionMessages()--是否有Action级别的信息
boolean hasErrors()--是否有错误,包括域和Action级别的
void pause(String result)--暂停action的执行,抛出异常,并转向对应返回类型
void setActionErrors(Collection errorMessage)--设置action级别的所有错误
void setActionMessages(Collection mesages)--设置action级别的所有信息
void setFieldErrors(Map errorMap)--设置域级别的所有错误
void validate()--默认的空校验器
09.05.05
class:这个属性是个必填属性,它指定了Bean实例的实现类,
type:这个属性是个可选属性,它指定了Bean实例实现Struts2规范,该规范通常是通过某个接口来体现的,因此该属性的值通常是一个Struts2接口,如果需要将Bean实例作为Struts2组件来使用,则应该指定该属性值;
name:该属性指定了Bean实例的名字,对于有相同type类型的多个Bean,则它们的name属性不能相同,这个属性也是个可选属性;
scope:该属性指定Bean实例的作用域。该属性市各可选属性,属性值只能是default、singleton、request、session或thread其中之一。
static:该属性指定Bean是否使用静态方法注入,通常而言,当指定了type属性时,该属性不应该指定为true。
optional:该属性指定该Bean是否是一个可选Bean,该属性市一个可选属性。
struts2框架加载Struts2常量的顺序:
1.struts-default.xml:该文件保存在struts2-core-2.0.6.jar
2.struts-plugin.xml:该文件保存在struts2-Xxx--2.0.6.jar
3.struts.xml:该文件是web应用默认的struts2配置文件
4.struts.properties:该文件是web应用默认的struts2配置文件
5.web.xml:该文件是web应用的配置文件
如果在多个文件中配置了同一个Struts2常量,则后一个文件中配置的常量会覆盖前面文件中配置的常量值;
如
果某个包没有指定namespace属性,即该包使用默认的命名空间,则默认的命名空间总是"",当某个包指定了命名空间以后,该包下所有的Action
处理URL应该是命名空间+Action名,例如如果namespace指定的是get,该包下包含getBooks的Action,则应该显示的URL
为:http://localhost:8080/namespace/book/getBooks.action
static PagContext getPagContext():取得Web应用的PagContext对象
static HttpServletRequest getRequest():取得Web应用的HttpServletRequest对象
static HttpServletResponse getResponse():取得Web应用的HttpServletResponse对象
static ServletContext getServletContext():取得Web应用的ServletContext对象
struts2内建结果类型:
chain结果类型:Action链式处理结果类型
chart结果类型:用于整合JFreeChart的结果类型
dispatcher结果类型:用于JSP整合的结果类型
freemarker结果类型:用于FreeMarker整合的结果类型
httpheader结果类型:用于控制特殊的HTTP行为的结果类型
jasper结果类型:用于JasperResports整合的结果类型
jsf结果类型:用于与JSF整合的结果类型
rdirect结果类型:用于直接跳转到其他URL的结果类型
redirect-action结果类型:用于直接跳装到其他Action的结果类型
stream结果类型:用于向浏览器放回JnputStream
tiles结果类型:用于与Tiles整合的结果类型
velocity结果类型:用于与Velocity整合的结果类型
xslt结果类型:用于与XML/XSLT整合的结果类型
plaintext结果类型:用于显示某个页面的原始代码的结果类型
实现类型转换器的关键是实现convertValue方法,该方法的参数如下:
1、context是类型装换环境的上下文
2、value是需要装换的参数,随着装换方向的不同,value参数的值也是不一样的,当把字符串类型向User类型装换时,value是原始字符串数组,当需要把User类型向字符串类型转换时value是User的事例;
3、toType是转换后的目标类型;
convertValue
方法返回的值就是类型装换后的值,该值的类型也会随转换方向的不同而不同,当把字符串向User类型转换时,返回值类型就是User类型,当需要把
User类型向字符串类型转换时,返回值类型就是字符串类型,所以,
convertValue方法是接受需要转换的值,需要转换的目标类型为参数,然后返回转换后的目标值;
1、boolean和Boolean:完成字符串和布尔值之间的转换
2、char和Character:完成字符串和字符之间的转换
3、int和Integer:完成字符串和整型值之间的转换
4、long和Long:完成字符串和长整型值之间的转换
5、float和Float:完成字符串的单精度浮点值之间的转换
6、double和Double:完成字符串和双精度浮点值之间的转换
7、Date:完成字符串和时间之间的转换,日期格式使用用户请求所在Locale的SHORT格式
8、数组:在默认情况下,数组元素是字符串,如果用户提供了自定义类型转换器,也可以是其它符合类型的数组
9、集合:在默认情况下,假定集合元素类型为String,并创建一个新的ArrayList封装所有字符串
发表评论
-
开源项目 企业框架,学习资料
2013-05-13 16:10 1550Spring mvc+hibernate+freemar ... -
maven 通用配置
2013-04-27 10:02 2992在搭建maven 项目的时候,我们很 ... -
SpringMVC使用注解@ResponseBody返回json中文乱码
2012-11-27 14:42 12456----------------------------- ... -
CAS 单点登录client,server端分析
2012-04-09 13:14 12705本篇文章是对JA-SIG CAS(v3.3)的初步调研总 ... -
EL表达式 functions String处理函数
2012-03-27 14:56 422401.uri="http://java.sun.co ... -
Hibernate hbm.xml中查询数据作为虚拟列Formula使用
2011-12-26 17:09 6218Hibernate 中的Formula 攻 ... -
Dom4jUtils 工具类让你更加方便操作XML的MarkerIce.Jar
2011-09-29 11:24 1618最近我闲着无聊,看到一篇文章关于XMl的操作.对于XMl操作相 ... -
getHibernateTemplate.load() 和get()之间的区别
2011-09-08 15:19 8717今天我在hibernate 进行 getHibernateTe ... -
排序算法java版,速度排行:冒泡排序、简单选择排序、直接插入排序、折半插入排序、希尔排序、堆排序、归并排序、快速排序
2011-05-24 09:16 1597先推荐一篇关于排序算法的文章:http://www.cpp ... -
struts2整合JSON,JQuery 实现ajax功能
2011-05-17 10:23 24164月 我使用到了 struts2 整合JQuer ... -
在spring来管理实例对象prototype和singleton的选择.针对action如何使用
2011-04-22 15:54 1344默认情况下,从bean工厂所取得的实例为Singleton(b ... -
Apache Commons工具集简介
2011-03-22 14:33 1253Apache Commons包含了很多开源的工具,用于解 ... -
java使用定时器,定时发送邮件
2011-02-22 16:01 1665java使用定时器,定时发送邮件 ... -
JSP 分页标签库
2010-12-31 16:11 3016好了,该说一下怎么用 ... -
java中web.xml的配置信息
2010-11-18 09:49 3730<?xml version="1.0&q ... -
forward,include,redirect的区别(转)
2010-08-27 13:54 1324forward,include,redirect是 ... -
一个Java程序员应该掌握的10项技能[转]
2010-06-12 10:53 12651、语法:必须比较 ... -
(转)Java开发者的十大戒律
2010-06-09 17:27 1163有许多标准和实 ... -
Java 线程同步示例
2010-06-08 23:22 1375文章用实例代码展示了Java中多线程访问共享资源 时线程同 ... -
synchronized 关键字
2010-05-28 10:28 1180synchronized 关键 ...
相关推荐
1、struts2概述 Struts2 软件下载 Struts2 比较重要的类 操作步骤及框架配置 struts运行机制 2、简单的struts2程序 ...9 struts2类型转换 ........ 10struts2标签库 ........ 11、访问数据库 ........
十、类型转换 57 1.基于Action的直接属性转换 57 2.基于Action的间接属性vo转换 59 十一、注解配置 59 十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及...
Struts2中的Action都是POJO,这一方面增强了Action本身的可测试性,另一方面也减小了框架内部的耦合度,而HTML表单中的输入项都被转换成了恰当的类型以供action使用。开发人员还可以通过拦截器(可以自定义拦截器...
3. 在 Web 容器启动时,Struts2 框架会自动加载配置文件里的相关参数,并转换成相应的类,如 ConfigurationManager、ActionMapper 和 ObjectFactory。ConfigurationManager 存有配置文件的一些基本信息,...
6.2.1struts2内置类型转换器 117 6.2.2引用类型的转换方式 117 6.2.3特殊对象的类型转换 118 6.2.4类型转换的错误处理 121 6.3输入校验 123 6.3.1输入校验的必要性 123 6.3.2编程方式实现输入校验 125 6.3.3...
SpringMVC 提供了类型转换机制,可以将请求参数转换为 Java 对象。类型转换机制可以帮助开发者更方便地处理请求参数。 八、JSON 格式数据的输入和输出 SpringMVC 提供了 JSON 格式数据的输入和输出机制,可以帮助...
Struts is a set of cooperating classes, servlets, and JSP tags that make up a reusable MVC 2 design. This definition implies that Struts is a framework, rather than a library, but Struts also contains...
{1.6}数据类型转换}{26}{section.1.6} {1.7}方法}{26}{section.1.7} {1.8}运算符}{27}{section.1.8} {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}Postincrement}{28}{subsubsection.1.8.1.1} {1.8.1.2}...
传统的类型转换。 49 66.1.2. 通过Class对象来获取对象的类型。 49 66.1.3. 通过关键字instanceof或Class.isInstance()方法 49 67. 说出一些常用的类,包,接口,请各举5个 50 68. XML文档定义有几种形式?它们之间...
B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具生成映射文件 C.1 创建带有@hibernate标记的Java源文件 C.2 建立项目的目录结构 C.3 运行XDoclet工具 附录D 发布和运行netstore应用 D.1 运行...
B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具生成映射文件 C.1 创建带有@hibernate标记的Java源文件 C.2 建立项目的目录结构 C.3 运行XDoclet工具 附录D 发布和运行netstore应用 D.1 运行...
B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具生成映射文件 C.1 创建带有@hibernate标记的Java源文件 C.2 建立项目的目录结构 C.3 运行XDoclet工具 附录D 发布和运行netstore应用 D.1 运行...
B.2 运用反射机制来持久化Java对象 附录C 用XDoclet工具生成映射文件 C.1 创建带有@hibernate标记的Java源文件 C.2 建立项目的目录结构 C.3 运行XDoclet工具 附录D 发布和运行netstore应用 D.1 运行...
增加更多的类型自动转换支持 增加全局查询范围 toJson/toArray支持隐藏和增加属性输出 增加远程一对多关联 [其它] 日志存储结构调整 Trace调试功能从日志类独立并增强 原Input类功能并入Request类 类库映射...
3. 数据类型之间的转换 - 如何将数值型字符转换为数字(Integer,Double) - 如何将数字转换为字符 - 如何取小数点前两位,并四舍五入。 4. 日期和时间 - 如何取得年月日,小时分秒 - 如何取得从 1970 年...
53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...
53、数据类型之间的转换: 14 54、字符串操作:如何实现字符串的反转及替换? 14 55、编码转换:怎样将GB2312 编码的字符串转换为ISO-8859-1 编码的字符串? 14 56、写一个函数,要求输入一个字符串和一个字符长度,...