`
regedit_123
  • 浏览: 317944 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
文章分类
社区版块
存档分类
最新评论

Struts1 date 类型转换问题

阅读更多

  最近在看struts2.0,它里面有个转换器。这时我想到了,struts1中也应该有个自动的类型转换器,要不我以前写的Form怎么可以把int,Long这样的类型在页面显示出来呢,同时我也可以把页面输出的String类型的值,变成和Form对应的属性类型的值呢。这些都是struts1的自动转换器的帮我们做的。那为什么我们还要对Date的类型的属性,要做从Date到 String 的转换,然后做从String到 Date的转换?难道struts1中自动的类型转换器不能做从Date到 String 的转换,然后做从String到 Date的转换吗?我想它不应该那么弱的。

          还是亲手试一试比较好点,动手写了段代码测试。
 
ActionForm中有属性birthday,类型是java.sql.Date,

如果在网页中加入
<html:text property="birthday"/>
当输入 2007-8-21时,运行正常。
同时在另一个页面next.jsp中用${User.birthday}显示Form中属性的值的时候,页面显示的也是2007-8-21。说明了Struts1中自动的类型转换器能做从Date到 String 的转换和从String到 Date的转换。

但是当不输入值时,报错。
报错的主要原因是当不在页面上输入时,ActionForm中属性birthday得到的值是null。由于birthday是java.sql.Date类型,要求birthday 格式必须是 yyyy-mm-dd,当不输入值或者输入的不是yyyy-mm-dd 格式时都会报错!

         上述问题说明了说明了Struts1中自动的类型转换器能做从Date到 String 的转换和从String到 Date的转换,但是它也只能做yyyy-mm-dd的转换,其它格式的都会出错。之所以我们还要在Form中对Date类型,要手写一些到String类型的转换和String类型到该类型的转换,主要原因是Date类型的格式不是单一的格式,它可以是2007-8-21,也可以用2007/08/21表示。所以我们手写转换就可以应付各种格式,甚至是null。然后我们可以把他们都变成一种统一的正确的格式。
        说白了,给Date类型的转换其实是一种把多种格式变成统一格式的转换。
 
        另外,如果有可能在页面上出现其他类型的对象或者是我们自定义类型的对象都是同样的道理!
分享到:
评论

相关推荐

    struts2自定义类型转换器

    使用struts2提供的转化器,实现Date类型的数据转换

    struts2 Date转换问题

    NULL 博文链接:https://happywaterlife.iteye.com/blog/1602352

    struts的form不能初始化java.util.Date类型

    NULL 博文链接:https://maserkinger.iteye.com/blog/719937

    自己写的struts2类型转换器

    服务器可以接收到的来自用户的数据只能是字符串或者是字符串数组,而在服务器上的对象中 ,这些数据往往有多种不同的类型,如日期(Date) 整数(int) 浮点数(float)或者是自定义类型 。所以我们要通过某种方式将特定...

    如何解决struts2日期类型转换

    在Struts2中,一般的内置类型都会在由系统自动进行转换.但是Date类型好像有时候行,有时候不行。比如我这次,本地运行正常,一上测试服务器就不行了。这个转换类是从网上看的:

    struts的input标签支持日期格式化输出

    修改struts标签text,使其支持日期类型的格式化输出。 用法:(例) ...3.页面中遇到Timestamp或Date类型的,自动转换成"yyyy-MM-dd HH:mm:ss"格式, simpleDateFormat还可以其它的格式,如"yyyy-MM-dd"等。

    struts2讲义_吴峻申

    7.1 Struts2类型转换使用介绍 135 7.1.1 基本数据类型转换功能 135 7.1.2 List集合类型数据类型转换功能 138 7.1.3 Set集合类型数据类型转换功能 141 7.2 类型转换发生异常处理方案 144 7.2.1 Struts2自带异常提示 ...

    struts2总结第二章

    a) 写Date类型转换类 b) 在要进行Date类型转换的类的同一包下,新建一个properties文件 i. 名称为Date类型的数据所在的类的名称-conversion.properties ii. 内容为 name:该日期类型的数据的名字,value:Date类型...

    深入浅出Struts2(附源码)

    作者处处从实战出发,在丰富的示例中直观地探讨了许多实用的技术,如数据类型转换、文件上传和下载、提高Struts 2应用的安全性、调试与性能分析、FreeMarker、Velocity、Ajax,等等。跟随作者一道深入Struts 2,聆听...

    Struts2 国际化字符串 拦截器

    validation.between=Date must between {0, date, short} and {1, date, short} 加参数的方法:(已核实) 人心的功能,如将Action输出到FreeMaker模板、Velocity模板、JasperReports和使用XSL转换等。这些都过result...

    深入浅出Struts 2 .pdf(原书扫描版) part 1

    如数据类型转换、文件上传和下载、Struts2应用的安全性、调试与性能分析、FreeMarker、Velocily、Ajax,等等。跟随作者一道深入Struts2。聆听大量来之不易的经验之谈。你对Struts2开发框架的理解和应用水平都将更上...

    struts登录demo(包括时间属性)

    3.其中有Date类型。默认是java.sql.Date,这样actionform可以自动转化。 4.使用java.util.Date,则需要写个转换器。然后注到服务器中。 这个例子可以参考博客:...

    适合初学者的SSH项目(CRUD、Oracle、Date)

    适合SSH初学者的CRUD项目,使用了Oracle,包含struts中datetimepicker控件的使用,及java端与Oracle端,Date数据类型转换的解决方案。

    Struts in Action中文版

    1. 介绍.........................................................................................................18 1.1. 关于本书..........................................................................

    struts in Action

    1. 介绍.........................................................................................................18 1.1. 关于本书...........................................................................

    Java的模板引擎Velocity初体验.pdf

    Velocity 的出现解决了 Struts 技术在 Model 和 View 之间的耦合问题,提高了开发效率和协作性。 下面是一个简单的 Velocity 开发例子,展示了 Velocity 是如何工作的: 1. 创建一个文件,文件名为:hellovelocity...

    Java学习笔记-个人整理的

    {1.6}数据类型转换}{26}{section.1.6} {1.7}方法}{26}{section.1.7} {1.8}运算符}{27}{section.1.8} {1.8.1}自增运算}{28}{subsection.1.8.1} {1.8.1.1}Postincrement}{28}{subsubsection.1.8.1.1} {1.8.1.2}...

    freemarker总结

    [ {“Akey”:”Avalue”},{“Akey1”:”Avalue1”}, {“Bkey”:”Bvalue”},{“Bkey1”:”Bvalue1”}, ] hashes {“you”:”a”,”me”:”b”,”he”:”c”} 注释标志 这里是注释 --&gt; 旧版本的freemarker采用...

Global site tag (gtag.js) - Google Analytics