日期:2014-05-16  浏览次数:20545 次

[转] struts2 date显示问题和存入数据库格式


如果不设置格式的话,首先显示的格式不符合规范yyyy-MM-dd,存入数据库的格式也不对,按这个日期查询的话,还要转换成指定的格式,挺麻烦的。

1.利用 <s:date>进行格式化.如:

<s:date name="birthday" format="yyyy-MM-dd"/>
就是将属性birthday按yyyy-MM-dd的格式进行输出.

2.利用<s:param>进行格式化.如:

<s:textfield name="birthday" >
<s:param name="value"><s:date name="birthday" format="yyyy-MM-dd"/></s:param>
</s:textfield>
或者

<input type="text" value="<s:date name="birthday" format="yyyy-MM-dd" />" />
Oracle struts2中的日期期输入显示问题还有一种是通过国际化的方式来进行:

首先在struts.properties中配置struts.custom.i18n.resources=globalMessages

然后在globalMessages_zh_CN.properties和globalMessages_en_US.properties文件中添加如下内容:

global.datetime = {0, date, yyyy-MM-dd HH:mm:ss}
global.date = {0, date, yyyy-MM-dd}
最后在页面中使用下面的语句就可以实现日期的格式化输出了.

<s:textfield name="birthday" value="%{getText('global.date',{birthday})}"/>
golbal.date样式

<s:textfield name="birthday" value="%{getText('global.datetime',{birthday})}"/>
global.datetime样式,上述的相关内容就是对Oracle struts2中的日期期输入显示问题的描述,希望会给你带来一些帮助在此方面。

用以上方法就可以了,然而,还有个问题。就是如果一开始没有保存这个日期数据,在显示的时候,会显示‘null’

解决方法是

<s:textfield name="user.name"

value="%{user== null||user.name== null ? '' :getText('global.date',{user.name})}"/>
?

?