首先,要定义一个类用于类型转换,继承DefaultTypeConverter,重写convertValue方法
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Map;
import com.opensymphony.xwork2.conversion.impl.DefaultTypeConverter;
public class DateTypeConvert extends DefaultTypeConverter {
@Override
public Object convertValue(Map<String, Object> context, Object value,
Class toType) {
try {
//context即上下文
//value就是需要进行转换的值(数组)
//toType为将要转换成的类
String[] str = (String[])value;
String s = str[0];
SimpleDateFormat sm = new SimpleDateFormat("yyyyMMdd");
if(toType == Date.class)
{
return sm.parse(s);
}else if(toType == String.class)
{
Date date = (Date)value;
return sm.format(date);
}
} catch (ParseException e) {
e.printStackTrace();
}
return null;
}
}
定义好转换器之后就需要注册转换器。在action包下建立一个 actionName-convertion.properties文件注册,如 Date = com.test.upload,局部类型转换器配置文件前面为类名,后面为固定格式
全局类型转换器,全局类型转换器要求需要转换的参数都是一种格式
类型转换器定义与局部一样,唯一的区别是配置文件需要放在类路径src地下,且命名规则为xwork-convertion.properties
相关推荐
11.拦截器 interceptor(和之前学的filter很类似) ...可以帮我们丰富action的功能,比自动类型转换(页面传一个String类型的id,接收的时候id为我们自己定义long类),或者自动帮我们把值放入到action里面对应的属性中等等
(2) 用户处于只有登录之后才可以讨论,聊天;如果没有登录只可以查看信息。 (3) 用户注册,需要通过Struts2字段校验判断用户注册页面中的用户名、密码、年龄、出生日期、邮箱等是否符合校验规则,并对自定义校验器...
包括struts的简单异常处理,类型转换,文件上传,文件下载拦截器..自己的代码backup...
7.3.1 对自定义的类型转换器进行配置 126 7.3.2 自定义的类型转换器示例 127 7.4 扩展StrutsTypeConverter类 130 7.5 与复杂对象配合使用 134 7.6 与Collection配合使用 137 7.7 与Map配合使用 142 7.8 小结 145 第...
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...
通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
通过网络或磁盘等方式,把公钥编码传送给李四,李四接收到张三编码后的公钥,将其解码,李四用张三的公钥加密信息,并发送给李四,张三用自己的私钥解密从李四处收到的信息…… Java利用DES私钥对称加密代码实例 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...
39.4 示例:Jakarta Struts 的SAD 39.5 过程:迭代式架构文档 39.6 参考资料 第六部分 其 他 主 题 第40章 迭代式开发和敏捷项目管理的进一步讨论 40.1 如何计划一次迭代 40.2 适应性计划与预测性计划 40.3 ...