首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

struts2部类转化

2012-12-23 
struts2类型转化struts的属性驱动: 就是在action类里面定义属性字段并提供get和set方法,注意字段要与页面

struts2类型转化
struts的属性驱动:
 就是在action类里面定义属性字段并提供get和set方法,注意字段要与页面的name属性值相同
 struts会通过反射将页面的值赋给action中的字段
 在配置文件中添加<result name = "input">转向的页面</result>,配置异常时转向的页面,input是固定值
 struts2默认是可以转换yy-MM-dd格式的日期,如果要转换其它格式需要自定义转换器
1)自定义类型转换器步骤:
 1)实现TypeConverter或者继承它的实现类(一般继承DefaultTypeConverter实现converterValue三个参数的方法)
 /*
  用到的是两个值:
  value:  是从页面获取到的值,struts底层是通过getParameterValues()获取的所以返回的是一个数组
  toType:  是要转换成的类型
 */
 public Object convertValue(Map<String, Object> context, Object value,Class toType)
 2)判断
  1.判断value是否为空,为空返回null;
  2.判断类型是否为空,为空返回null
  3.判断类型是否是要转换成的类型,不是返回null
  4.判断value是否是一个数组,是一个数组才执行转换
 3)将value强转成数组
 4)创建日期转换对象将数据转换成日期格式返回,在转换之前判断数据是否存在或不等于null
 5)转换器的异常必须抛出,struts2拦截器拦截到异常证明转换出错,如果不抛出拦截器会当做转换成功
  1.<%@ taglib uri="/struts-tags" prefix="s" %>
  在错误页面引入struts2的标签库,struts2拦截器会把所有的错误信息放到一个集合中
  2.通过<s:fielderror name = "action中定定义的字段名">就可以获取到错误信息
  3.<s:fielderror></s:fielderror>是将拦截的所有的错误信息显示
   默认是英文错误提示,修改成中文提示:
   在当前包下创建一个.properties文件,文件名自定义
    xwork.default.invalid.fieldvalue=修改成中文错误提示信息+"{0}".
    方法1.在配置文件中配置(全局)
     <constant name="struts.custom.il8n.resources" value="包名+文件名"></constant>
    方法2.在配置文件中配置(局部)
     invalid.fieldvalue.字段名=提示信息
 
2)注册配置
 (1)基于字段配置(局部只针对某个字段有效):
  创建actionClassName-conversion.properties文件,该文件放到对应的action同一个目录下,actionClassName是实现了action接口的类名
  文件内容是:要转化的action中的字段名=自定义转换器的全类名
 (2)基于类的配置(全局只要是要转换成某个类型都管用)
  在src下创建一个xwork-conversion.properties文件(文件名是固定的写法)
  文件内容是:要转换的类型的全类名=转换器的全类名
将页面的数据封装到javaBean中;
 1.在action中添加javaBean字段:private Person person;
 2.action中提供set/get方法
 3.在页面name属性中定义规范是:action中的javaBean字段名.javaBean中的字段名:name="person.neme"

热点排行