struts date标签

16 篇文章 0 订阅

最近在做一个项目,用到了struts2的部分标签,顿时感觉以前学的东西都忘得一干二净了,

真是:好记忆,烂笔头!!!


hql中写 sql 语句,界面显示的时候用如下操作:

<s:iterator value="#request.list" status="st" id="data">
                                <tr>
                                  <td class="newpapers_parm_table_td_3">
                                      <s:property value="#data[0]"/>
                                  </td>
 </tr>

</s:iterator>



struts 标签 :<s:date/>
作用:用来格式化显示日期的格式。

它可以用一种你指定的格式来显示 (如:“yyyy-MM-dd”),可以生成通俗易懂的注释(如:in 2 hours,14 minutes),或者用预先定义的一个格式来显示(如在properties配置文件中配置'struts.date.format').如果没有找到这个struts.date.format,则会找默认的DateFormat.MEDIUM来格式化你的日期对象。当然如果在值栈中没有找你对应的日期对象,则会返回空格。

可配置的标签属性有:

  • name
  • nice
  • format


下面这些功能的使用决定于nice属性与format属性。


1。nice属性为true


i18n keydefault
struts.date.format.past{0} ago
struts.date.format.futurein {0}
struts.date.format.secondsan instant
struts.date.format.minutes{0,choice,1#one minute|1<{0} minutes}
struts.date.format.hours{0,choice,1#one hour|1<{0} hours}{1,choice,0#|1#, one minute|1<, {1} minutes}
struts.date.format.days{0,choice,1#one day|1<{0} days}{1,choice,0#|1#, one hour|1<, {1} hours}
struts.date.format.years{0,choice,1#one year|1<{0} years}{1,choice,0#|1#, one day|1<, {1} days}


 


2.nice属性为 false,format属性指定的格式 如:dd/MM/yyyy

在这种情况下,format属性将被使用。

3。 nice属性为false,format属性没有指定。

i18n keydefault
struts.date.formatif one is not found DateFormat.MEDIUM format will be used

参数

Name
Required
Default
Evaluated
Type
Description
formatfalse falseString日 期格式
idfalse trueString 与普通html的id一样
nametrue trueString日 期的值
nicefalsefalsetrueBoolean是否打印出更nicely的格式
例子:
<s:date name="person.birthday" format="dd/MM/yyyy" />
 <s:date name="person.birthday" format="%{getText('some.i18n.key')}" />
 <s:date name="person.birthday" nice="true" />
<s:date name="person.birthday" />
 
问题1:
<s:date name="model.createDate" format="yyyy-mm-dd"/>老是将日期显示错误,比如数据库里明明是2009-03-30
,显示就成了2009-30-31。
解决:这位老兄完全的不明白java的日期格式啊。应该多看看API。


字母日期或时间元素表示示例
GEra 标志符Textde>ADde>
yYearde>1996de>; de>96de>
M年中的月份Monthde>Julyde>; de>Julde>; de>07de>
w年中的周数Numberde>27de>
W月份中的周数Numberde>2de>
D年中的天数Numberde>189de>
d月份中的天数Numberde>10de>
F月份中的星期Numberde>2de>
E星期中的天数Textde>Tuesdayde>; de>Tuede>
aAm/pm 标记Textde>PMde>
H一天中的小时数(0-23)Numberde>0de>
k>一天中的小时数 (1-24)Numberde>24de>
Kam/pm 中的小时数(0-11)Numberde>0de>
ham/pm 中的小时数(1-12)Numberde>12de>
m小时中的分钟数Numberde>30de>
s分钟中的秒数Numberde>55de>
S毫秒数Numberde>978de>
z时区General time zonede>Pacific Standard Timede>; de>PSTde>; de>GMT-08:00de>
Z时区RFC 822 time zonede>-0800de>
 当然,数据的日期格式又是另外一回事了,有时我也总会将HH24:mm:ss写成数据库的HH24:mi:ss.有时候写的导数可
能也会出现日期格式的问题,因为与数据库的格式不一样而出来导入错误。还在操作数据库的时候可能也会有日期
格式的困扰,如果用oracle的话,如果你写的正确的日期格式,用String也可以的。
 
Oracle的to_date函数可以将de>CHARde>, de>VARCHAR2de>, de>NCHARde>, or de>NVARCHAR2de> 类型数据转换成de>DATEde>数据类型的值. 如果不指
定格式,则会用默认的格式。默认的格式包为:de>NLS_TERRITORYde> 。
更多的信息应该参考Oracle的文档了。
 
2。我在date.jsp里有一个form,里面有一项是Date类型的. 
<s:date name="birthday" label="birthday"> </s:date> 
然后我用Action验证.为什么总是得不到birthday的值,跟踪发现birthday的值没有传过来,值只是null
 
解决:这位大哥,不明白标签的分类。这只是一个快速按你要求格式的显示日期的标签。struts2不会帮你转换的,
应该写成textfield,传过去的日期才会自动帮转换。
  
请问Struts2的s:date标签在action中一定要为date类型吗? 
例:private Date currentDate; ...... 如果不是,请问long,String,Integer如何用<s:date name ="currentDate" formate =""yyyy-MM-dd"/>输出? 
回答: 
s:date标签使用时,一定要是Date类型。 String型,数值型等其他类型,可以用以下方法: 先在resource文件中定义如下: format.date_medium={0,date,medium} format.date_ymd={0,date,yyyy/MM/dd} format.date_time={0,date,yyyy/MM/dd hh:mm} format.number_money={0,number,#,##0} 然后就可以自由的format了: <s:text name="format.number_money"> <s:param name="value" value="salesPrice"/> </s:text>円 <s:text name="format.date_ymd"> <s:param name="value" value="salesDate"/> </s:text>



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值