struts2 之类型转化&日期
2015-07-24 07:36
696 查看
Struts中的基本类型是可以通过struts的默认类型转化器转化的..日日类型默认的是1992-02-03这样的格式,如果我们填写1992年02月03日,name就会报错...因此我们需要进行类型转化...
1.局部类型转化器:
开发步骤:
(1)写一个类型转化器继承StrutsTypeConverter这个类.
(2)在要转化的类的同级目录下写一个和ActionName-conversion.properties的配置文件,如我这里要转化的是UserAction类中date类型...
![](http://img.blog.csdn.net/20150724072609903?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
(3)在这个配置文件中写要转化的属性=类型转化器的全名.
user.date=cn.itcast.converter.MyConverter
2.全局类型 转化器
(1)写一个类型转化器继承StrutsTypeConverter这个类
(2)在src下写一个名称为xwork-conversion.properties的配置文件
(3)内容是:
java.util.Date=cn.itcast.converter.MyConverter
注册表单:(struts的配置文件略)
![](http://img.blog.csdn.net/20150724073256756?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
自定义类型转化器:
user.date=cn.itcast.converter.MyConverter
如果是:全局配置文件
java.util.Date=cn.itcast.converter.MyConverter
当我们在表单中填写如下内容:
![](http://img.blog.csdn.net/20150724073505149?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center)
控制台打印:
李卫康==22==Sat Sep 12 00:00:00 CST 1992
1.局部类型转化器:
开发步骤:
(1)写一个类型转化器继承StrutsTypeConverter这个类.
(2)在要转化的类的同级目录下写一个和ActionName-conversion.properties的配置文件,如我这里要转化的是UserAction类中date类型...
(3)在这个配置文件中写要转化的属性=类型转化器的全名.
user.date=cn.itcast.converter.MyConverter
2.全局类型 转化器
(1)写一个类型转化器继承StrutsTypeConverter这个类
(2)在src下写一个名称为xwork-conversion.properties的配置文件
(3)内容是:
java.util.Date=cn.itcast.converter.MyConverter
注册表单:(struts的配置文件略)
<body> <form action="${pageContext.request.contextPath}/user/register" method="post"> username:<input type="text" name="user.username"/><br> age:<input type="text" name="user.age"/><br> date:<input type="text" name="user.date"/><br> <input type="submit" value="提交"> </form> </body>
自定义类型转化器:
package cn.itcast.converter; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class MyConverter extends StrutsTypeConverter{ @Override public Object convertFromString(Map context, String[] values, Class toClass) { DateFormat[] df={new SimpleDateFormat("yyyy-MM-dd"),new SimpleDateFormat("yyyy年MM月dd日"),new SimpleDateFormat("yyyyMMdd")}; //判断是不是为null if(values==null||values.length==0){ return null; } //判断是不是Date类型 if(Date.class!=toClass){ return null; } for(int i=0;i<df.length;i++){ Date date; try { date = df[i].parse(values[0]); } catch (ParseException e) { continue; } return date; } return null; } @Override public String convertToString(Map context, Object o) { return null; } }UserAction:要转化是这个类中的user.date属性
package cn.itcast.type; import cn.itcast.domain.User; import com.opensymphony.xwork2.ActionSupport; public class UserAction extends ActionSupport{ private User user; public User getUser() { return user; } public void setUser(User user) { this.user = user; } public String register(){ System.out.println(user.getUsername()+"=="+user.getAge()+"=="+user.getDate()); return "register"; } }如果是:局部配置文件:
user.date=cn.itcast.converter.MyConverter
如果是:全局配置文件
java.util.Date=cn.itcast.converter.MyConverter
当我们在表单中填写如下内容:
控制台打印:
李卫康==22==Sat Sep 12 00:00:00 CST 1992
相关文章推荐
- 杭电ACM2032java做法
- 我的异常-java.lang.NullPointerException
- C#__Dictionary类 __类似java Map 键值对
- 走进Java(一)J2SE
- JAVA监听器原理
- 深入理解JAVA事件机制
- Java基础教程之事件和监听器
- 再谈java事件监听机制
- JAVA用户自定义事件监听完整例子
- ACM中的java
- Java学习02
- java设计模式学习之观察者模式(二)
- Java_命名规范
- Eclipse闪退修复
- Java实现的抽取随机号码或者出场顺序
- 【java基础】随手写的一个日期计算,新手可以看看
- struts框架实现登录
- eclipse常用快捷键
- JAVA-IO-PrintWriter
- JavaFX如何显示多个Stage窗口