Struts2.0框架不能够或者不能完整的进行自动类型转换时采用自定义类型转换
自定义类型转换器
1.开发一个类,extends StrutsTypeConverter
2.配置文件,声明自定义类型转换器
一. 局部的类型转换器:
配置文件的名称: actionName-conversion.properties
配置文件的位置: 和Action放在同一个目录结构当中
配置文件的内容: Action中需要类型转换器的属性=自定义类型转换器的全路径
1.在com.jsu.struts2.action包中写一个类extends StrutsTypeConverter
在DateConverter.java文件中
package com.jsu.struts2.action; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.Map; import org.apache.struts2.util.StrutsTypeConverter; public class DateConverter extends StrutsTypeConverter { @Override public Object convertFromString(Map context, String[] values, Class toClass) { SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); Date d = null; String dateStr = values[0];//用户提交的数据 try { d=sdf.parse(dateStr); } catch (ParseException e) { e.printStackTrace(); } return d; } @Override public String convertToString(Map context, Object obj) { Date d =(Date)obj; SimpleDateFormat sdf = new SimpleDateFormat("yyyy/MM/dd"); String dateStr=sdf.format(d); return dateStr; } }
2.reg.jsp页面
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> </head> <body> <center> <form action="add.action" method="post"> userName:<input type="text" name="username"/><br> Age:<input type="text" name="age"/><br> Birthday:<input type="text" name="birthday"/><br> <input type="submit" value="Submit"/> </form> </center> </body> </html>
3.在com.jsu.struts2.action包中写一个Action RegisterAction extends ActionSupport
在RegisterAction.java文件中
package com.jsu.struts2.action; import java.util.Date; import com.opensymphony.xwork2.ActionSupport; public class RegisterAction extends ActionSupport { private String username; private String age; private Date birthday; @Override public String execute() throws Exception { System.out.println(username+" : "+age+" : "+birthday); return SUCCESS; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getAge() { return age; } public void setAge(String age) { this.age = age; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } }
4.在和Action同一目录结构当做写配置文件,配置文件命名actionName-conversion.properties
配置文件的内容: Action中需要类型转换器的属性=自定义类型转换器的全路径
在RegisterAction-conversion.properties配置文件中
birthday=com.jsu.struts2.action.DateConverter
5.在struts.xml文件中
<struts> <package name="loginDemo" namespace="/" extends="struts-default"> <action name="add" class="com.jsu.struts2.action.RegisterAction"> <result type="redirect">/reg.jsp</result> </action> </package> </struts>
二、 全局的类型转换器
配置文件的名称: xwork-conversion.properties
配置文件的位置: 在src目录下面
配置文件的内容: 需要进行类型转换的类型=自定义类型转换器的全路径
局部类型转换:只针对某一个Action的某一个属性进行转换
全局类型转换:对所有Action对象中该类型的属性进行转换
在 xwork-conversion.properties配置文件中
java.util.Date=com.jsu.struts2.action.DateConverter
以上其他内容都一样,只改变配置文件
发表评论
-
struts2day06 自定义结果
2012-07-16 12:14 639类implements Result接口 或者 extends ... -
struts2day06 Struts2.0的result
2012-07-16 12:01 848Struts2.0的result Action ... -
struts2day06学习笔记
2012-07-16 10:55 8231.new String(xxx.getBytes(),&qu ... -
struts2day05异常处理
2012-07-13 23:13 796Struts2.0的异常处理机制 1.什么是异常?软件在 ... -
Struts2day05学习笔记
2012-07-13 22:19 6341.自定义拦截器 1.im ... -
Struts2day04Struts2.0文件的下载
2012-07-13 08:26 6411.写一个Action,在DownloadAction ext ... -
Struts2day04Struts2.0文件的上传
2012-07-13 08:20 6221、在服务器端提供一个文件夹存放提交的文件,upload文件夹 ... -
Struts2day04Struts2.0实现阻止表单重复提交
2012-07-12 21:01 5821.使用叫做token的拦截器,在表单中加入<s:tok ... -
Struts2day04对Action的方法进行过滤拦截
2012-07-12 20:38 17451.写一个Action类 UserManagerAction ... -
Struts2day04判断用户是否登录
2012-07-12 19:37 8251.在拦截器中获得用户登录的session 在LoginC ... -
Struts2day04测试程序的执行效率,拦截器栈,在Action中覆盖拦截器的属性值
2012-07-12 18:58 11491.在LoginAction.java中,extends Ac ... -
Struts2学习笔记day04
2012-07-12 00:31 5921.自定义类型转换 1.写一个类 extends S ... -
Struts2day03Struts2.0提供的数据格式校验
2012-07-11 21:52 687Struts2.0提供的数据格式校验 js校验:存在被 ... -
Struts2day03Struts2.0国际化
2012-07-11 21:09 717Struts2.0国际化 B/S结构中为网页提供多国 ... -
Struts2学习笔记day03
2012-07-11 19:09 9181.值栈:ValueStack,存储数 ... -
Struts2day02多个对象提交
2012-07-10 07:15 1153在listUser.jsp页面 <%@ page la ... -
Struts2day02表单标签
2012-07-10 07:15 6401.在struts2Form.jsp中 <%@ ... -
struts2day02访问ValueStack中的数据以及访问Context中的对象
2012-07-10 07:14 10221.在show.jsp页面 <%@ page lang ... -
Struts2day02动态方法调用
2012-07-10 07:14 6231.在opt.jsp页面 <%@ page langu ... -
Struts2day02使用通配符调用指定的方法
2012-07-10 07:14 7011.在opt.jsp页面 <%@ page langu ...
相关推荐
类型转换器的作用是将请求中的字符串或字符串数组参数与action中的对象进行...下面这篇文章主要给大家介绍了关于Struts2学习教程之自定义类型转换器的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
1、 理解Struts2的类型转换类型 2、 理解局部类型转换器与全局类型转换器的区别 3、 掌握Struts2的自定义类型转换 4、 理解OGNL表达式语言
从官网checkout下来的源码,如果大家觉的区官网麻烦可以直接下载这个
Struts2中ognl-2的源代码,从官网下载的
struts2标签和OGNL表达式struts2标签和OGNL表达式
本资源适合刚接触Struts和Ognl的小伙伴交流学习,欢迎吐槽。
整合多份struts2中关于ognl的学习资料
有对struts2标签和OGNL的总结。
Struts2学习计划5---Struts2_OGNL(对象图导航语言)的学习
Struts2的一个关键特性就是它可以对Action携带的数据进行读写访问,例如在前面我们在表单中使用user.username指定数据传递给Action的user对象的username属性,在元素中使用user.username来获取用户的名字,这是通过...
struts2的ognl
简单介绍一下struts2中的OGNL(Object-Graph Navigation Language)表达式语言。
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
第四章:struts2中的OGNL.ppt,详细讲解了struts2的标签使用
struts2标签和OGNL表达式.pdf
struts2详细讲解,JQuery,类型转换和OGNL
struts2官方表达式ognl源码.........................
Struts2的标签库及OGNL表达式语言
struts2 所用的 ognl 包源码,我下载后整理出最基本的源码,把其它无关的文件都清理掉了。在 Eclipse 3.4.1 中用 struts-2.1.6 测试通过。