Struts2 OGNL 自动转换Date类型的一些注意事项

Strut2 有比较完善的使用OGNL的jsp标签自动转化为对应的后台对象的功能。

这里java.util.Date的自动转化有一些需要注意的地方(局部转换):

1.必须要在struts的xml文件中,在对应action里加入一个name为“input”的result项。

   

   不然使用的时候,strut2框架会报错,如下:

  

    提示缺少一个名为 input 的result结果。

2. 如果需要使用自定义转化Date的话,对应的properties文件中的对应关系,最后一定不能有空格!还有不能习惯性的加“;”,不然会提示找不到类。

3. Date自动转化的格式的注意事项。

  struts2框架可以实现对字符串对Date格式的自动转换,但对于用户在浏览器输入的格式还是有要求的。具体来讲,Struts2对Date格式转换只能识别短 (Short)格式,并且和用户操作系统Local默认时间类型(中国标准,美国标准)有关。

    以上的解释怎么解读呢?

    所谓短格式,就是如下图所示,图例展示的都是系统Local地为中华人民共和国的短日期格式。也就是说,如果用户的系统Local是中国,那么下面的短周期格式Struts2都能够正常转化。

    

     下图是Local位美国的短日期格式。

      

       特别注意,yyyy-MM-dd或者yyyy/MM/dd这种格式在中国格式非常流行,但是在很多英语地区就不行,

       比如:

       

       

        前面是铺垫,接下来说重点。由于Edge、IE和Windows是一家,所以使用微软家的浏览器要注意浏览器的默认语言是哪家,在哪里设置呢?

        IE11为例:

        

   点击“设置首选语言项”

 

  设置你想要的语言为首选语言。如果你设置了English(United States)首选语言,那么你在IE,Edge浏览器输入yyyy-MM-dd或者yyyy/MM/dd,转化就会报错。

  值得强调的事情是Chrome有自己的语言体系,不受这个影响。Chrome的语言设置在这里:

   

       所以Struts2转化时间是一件很蛋疼的事情。如果想让自己的系统工作可控一些,建议使用全局自定义转换。怎么转?网上有很多例子,我就不写了。

    

   

原文地址:https://www.cnblogs.com/wangxiaoha/p/5980950.html