- 浏览: 85738 次
文章分类
最新评论
数据类型转换器
一为什么要使用转换器
首先struts2通过request.getParameter("");获取String数据,并通过拦截器将
String转换为各种常用的数据类型。但这些Struts2默认的转换器并不总是满足
需求。
二我们自己编写的类型拦截器
的说明详见
http://www.opensymphony.com/ognl/api/ognl/DefaultTypeConverter.html
三编写相应拦截器之后,我们必须配置转换器
DateTimeConvertor去进行转换。我们在Action中不需要进行任何的处理,我们
只需要声明相应的类型,转换器会自动进行调用。
2.java.util.Date java.sql.Date区别
http://www.cnblogs.com/lvjianjun/archive/2010/08/24/1807501.html
四编写配置文件和其他页面
1
2
的action类的方法,而不是通过动态方法或其他方法调用.
3
4
5
用*.action,也就是针对所有后缀为.action的页面执行过滤,但是如果我们在
其他非action后缀的页面中使用struts标签的话就会发生问题,这是由于struts
标签需要struts的过滤器进行处理。
有关类型转换器的知识可见
http://blog.csdn.net/q3498233/article/details/7074095或者
http://blog.163.com/zhangfei_jiayou/blog/static/56244178200982622041863/
一为什么要使用转换器
首先struts2通过request.getParameter("");获取String数据,并通过拦截器将
String转换为各种常用的数据类型。但这些Struts2默认的转换器并不总是满足
需求。
二我们自己编写的类型拦截器
package com.MyStruts2Test.convertor; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Map; import ognl.DefaultTypeConverter; public class DateTimeConvertor extends DefaultTypeConverter{ private DateFormat [] dateFormat = { new SimpleDateFormat("yyyy-MM-dd"), new SimpleDateFormat("yyyy/MM/dd"), new SimpleDateFormat("yy-MM-dd") }; private DateFormat [] timeFormat = { new SimpleDateFormat("HH:mm:ssss"), new SimpleDateFormat("HH:mm") }; public Object convertValue(Map context,Object value,Class toType){ if(toType.equals(java.sql.Date.class)){ String [] parameterValues = (String [])value; for(DateFormat format:dateFormat){ try{ return new java.sql.Date (format.parse(parameterValues[0]).getTime()); }catch(ParseException e){ } } }else if(toType.equals(java.sql.Time.class)){ String [] parameterValues = (String [])value; for(DateFormat format:timeFormat){ try{ return new java.sql.Time (format.parse(parameterValues[0]).getTime()); }catch(ParseException e){ } } }else if(toType.equals(java.util.Date.class)){ String [] parameterValues = (String [])value; for(DateFormat format:dateFormat){ try{ return format.parse (parameterValues[0]); }catch(ParseException e){ } } }else if(toType.equals(String.class)){ if (value instanceof java.sql.Date){ }else if(value instanceof java.sql.Time){ }else if(value instanceof java.util.Date){ return dateFormat[0].format ((java.util.Date)value); } } return super.convertValue(context, value, toType); } }
convertValue(Map context, Object value, Class toType)
的说明详见
http://www.opensymphony.com/ognl/api/ognl/DefaultTypeConverter.html
三编写相应拦截器之后,我们必须配置转换器
java.sql.Date=com.MyStruts2Test.convertor.DateTimeConvertor java.sql.Time=com.MyStruts2Test.convertor.DateTimeConvertor java.util.Date=com.MyStruts2Test.convertor.DateTimeConvertor以及Action
package com.MyStruts2Test.action; import java.sql.Date; import java.sql.Time; import com.opensymphony.xwork2.ActionSupport; public class ConverterAction extends ActionSupport{ private Date sqlDate; private Time sqlTime; private java.util.Date utilDate; public String execute(){ return INPUT; } public String convert(){ return SUCCESS; } public Date getSqlDate() { return sqlDate; } public void setSqlDate(Date sqlDate) { this.sqlDate = sqlDate; } public Time getSqlTime() { return sqlTime; } public void setSqlTime(Time sqlTime) { this.sqlTime = sqlTime; } public java.util.Date getUtilDate() { return utilDate; } public void setUtilDate(java.util.Date utilDate) { this.utilDate = utilDate; } }1这里的意思就是如果我们要转换到java.sql.Date类型,我们就要使用类
DateTimeConvertor去进行转换。我们在Action中不需要进行任何的处理,我们
只需要声明相应的类型,转换器会自动进行调用。
2.java.util.Date java.sql.Date区别
http://www.cnblogs.com/lvjianjun/archive/2010/08/24/1807501.html
四编写配置文件和其他页面
1
<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd"> <struts> <package name = "converter" extends = "struts-default" namespace = "/converter"> <action name = "converter" class = "com.MyStruts2Test.action.ConverterAction"> <result name = "input">converter.jsp</result> <result name= "success">success.jsp</result> </action> </package> </struts>
2
<body> This is my JSP page. <br> <s:form action = "converter"> <s:label label = "转换器"/><br> <s:textfield name = "sqlDate" label = "SQL Date:"/><br> <s:textfield name = "sqlTime" label = "SQL Time:"/><br> <s:textfield name = "utilDate" label = "Util Date:"/><br> <s:submit value = "提交" method = "convert"/> </s:form> </body>注意这里的<s:submit value = "提交" method = "convert"/>,它会调用相应
的action类的方法,而不是通过动态方法或其他方法调用.
3
<body> This is my JSP page. <br> java.sql.Date:<s:property value = "sqlDate"/><br> java.sql.Time:<s:property value = "sqlTime"/><br> java.util.Date:<s:property value = "utilDate"/><br> </body>
4
<body> This is my JSP page. <br> <a href = "<s:url action = "converter" namespace = "/converter"/>">ConverterTest</a> </body>
5
<welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class> org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter </filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app>特别要注意一个以前没发现的问题,如果我们这里的urlpattern不使用/*,而使
用*.action,也就是针对所有后缀为.action的页面执行过滤,但是如果我们在
其他非action后缀的页面中使用struts标签的话就会发生问题,这是由于struts
标签需要struts的过滤器进行处理。
有关类型转换器的知识可见
http://blog.csdn.net/q3498233/article/details/7074095或者
http://blog.163.com/zhangfei_jiayou/blog/static/56244178200982622041863/
- MyStruts2Test.rar (7.2 MB)
- 下载次数: 1
发表评论
-
开发者突击的配套Struts2SpringHibernate集成项目学习笔记2
2012-09-20 20:23 866开发者突击SSH2OA项目学习笔记,这里的登陆注册界面和之前学 ... -
用SSH2简单实现了用户注册登录删除功能
2012-09-08 22:19 3116第一次尝试把SSH2整合起来,这里记下编写当中遇到的问题和自己 ... -
开发者突击的配套Struts2SpringHibernate集成项目学习笔记1
2012-08-29 10:35 1140学习开发者突击的配套Struts2SpringHibernat ... -
struts2项目无法正确启动Tomcat的问题学习笔记
2012-07-28 20:59 899struts2项目无法正确启动Tomcat的问题学习笔记 第 ... -
struts2自带项目showcase的Action Chaining学习笔记
2012-07-26 20:40 0struts2自带项目showcase的A ... -
struts2自带项目showcase的tags学习笔记
2012-07-26 20:31 692struts2自带项目showcase的tags学习笔记 第 ... -
struts2自带项目showcase的CRUD功能学习笔记
2012-07-23 17:00 0struts2自带项目showcase的CRUD功能学习笔记 ... -
struts2自带项目showcase的fileupload与filedownload功能学习笔记
2012-07-23 14:59 1040struts2自带项目showcase的fileupload功 ... -
struts2框架自带项目struts2-mailreader学习笔记
2012-07-17 21:24 1247struts2框架自带项目struts2-mailreader ... -
【转】Struts2的Action配置的各项默认值
2012-07-09 18:54 7791、Action配置的各项默认值 如果没有为action指 ... -
【转】Struts2中的OGNL表达式
2012-07-09 16:22 0转自http://blog.csdn.net/jady ... -
十步走完一个小的Struts2实例
2012-07-07 20:31 669初学Struts2,先实践一个小的例子。 一、先建立一个工程, ...
相关推荐
使用struts2提供的转化器,实现Date类型的数据转换
对于基本数据类型 strus2可以自动的将其转换成所需要的类型,但是我们自己定义的引用数据类型无法转换,本文详细介绍了strus2的自定义类型转换器
服务器可以接收到的来自用户的数据只能是字符串或者是字符串数组,而在服务器上的对象中 ,这些数据往往有多种不同的类型,如日期(Date) 整数(int) 浮点数... 要实现 上述的转换 ,Struts2中 提供了 converter。
主要介绍了关于Struts2类型转换的相关资料,文中主要介绍了Struts2的类型转换器和自定义类型转换器的实现,有需要的朋友可以参考借鉴,下面来一起看看吧。
软件硕士张龙老师,对Struts2类型转换器的说明源代码,以及批量插入数据的源代码,不改动任何代码的情况下进行类型转换。
struts1框架中没有自动转换器,每次都得自己部署,所以自己写个,源码分享给大家。
新手必备,看完绝对思路清晰。醍醐灌顶啊! 一. Struts2介绍 1.... 数据类型转换器 11. 实现文件上传 12. Struts2的拦截器 13. 拒绝表单重复提交 四. OGNL表达式 五. Struts2中常用标签
1、struts2概述 Struts2 软件下载 Struts2 比较重要的类 操作步骤及框架配置 struts运行机制 2、简单的struts2程序 ...9 struts2类型转换 ........ 10struts2标签库 ........ 11、访问数据库 ........
5.3.1 立即可用的类型转换器 89 5.3.2 使用OGNL表达式从表单字段名映射到属性 90 5.4 自定义类型转换 101 5.4.1 实现类型转换器 102 5.4.2 在String和Circle之间转换 102 5.4.3 配置框架使用自定义转换器 103 5.5 小...
servlet模板,JavaDoc视图的使用,局部类型转换器步骤 ,全局类型转换器 ---对所有的Action类有效,模型驱动,数据校验,struts2校验介绍,校验分类,包的总结,开发的核心类库
7.1.2 List集合类型数据类型转换功能 138 7.1.3 Set集合类型数据类型转换功能 141 7.2 类型转换发生异常处理方案 144 7.2.1 Struts2自带异常提示 145 7.2.2 Struts2局部异常提示定义属性文件使用介绍 146 7.2.3 ...
十、类型转换 57 1.基于Action的直接属性转换 57 2.基于Action的间接属性vo转换 59 十一、注解配置 59 十二、总结 本教程对struts2的基本知识进行了一些说明,关于struts2的更多详细内容应参看struts2的官方文档及...
作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...
struts2知识点:处理流程,基本配置,与servlet的API解耦,结果类型,通配符和动态方法的调用,类型转换,文件上传,拦截器,表单验证,国际化,OGNL表达式,UI标签,模型驱动,防止表单重复提交,项目练习知识点:...
struts2教程,一共有八个ppt。内容丰富。有:1、struts2配置与运行。2、类型转换器。3、 数据较验。4、拦截器。5、文件上传与下载。6、struts2国际化。7、 标签介绍。8、Struts2的插件。
01 Struts2-Action 5 一、 Struts作用: 5 二、 搭建Struts2的运行环境: 5 三、 Namespace 6 四、 标签 6 五、 Action 6 六、 路径问题的说明 8 七、 Action的动态调用方法 8 ...10 类型转换 38 Struts2总结 39
struts2框架经典整理,异常处理的方式和配置,全局资源文件执行国际化的方法,数据校验,数据类型转换器,基础讲解。