struts标签 s date 的使用

分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow

也欢迎大家转载本篇文章。分享知识,造福人民,实现我们中华民族伟大复兴!

                 

最近研究struts时,发现这个标签能够解决很多格式上的问题,所以在网上搜索了一下这个内容,发现这篇文章写得挺不错的,挺有收获。

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

 


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

可配置的标签属性有:
name
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。


解决:应该多看看API。

字母

日期或时间元素

表示

示例

G

Era 标志符

Text

de>ADde>

y

Year

de>1996de>; de>96de>

M

年中的月份

Month

de>Julyde>; de>Julde>; de>07de>

w

年中的周数

Number

de>27de>

W

月份中的周数

Number

de>2de>

D

年中的天数

Number

de>189de>

d

月份中的天数

Number

de>10de>

F

月份中的星期

Number

de>2de>

E

星期中的天数

Text

de>Tuesdayde>; de>Tuede>

a

Am/pm 标记

Text

de>PMde>

H

一天中的小时数(0-23)

Number

de>0de>

k>

一天中的小时数 (1-24)

Number

de>24de>

K

am/pm 中的小时数(0-11)

Number

de>0de>

h

am/pm 中的小时数(1-12)

Number

de>12de>

m

小时中的分钟数

Number

de>30de>

s

分钟中的秒数

Number

de>55de>

S

毫秒数

Number

de>978de>

z

时区

General time zone

de>Pacific Standard Timede>; de>PSTde>; de>GMT-08:00de>

Z

时区

RFC 822 time zone

de>-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的文档了。

 

 


请问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>

 

原帖地址:http://blog.sina.com.cn/s/blog_4dacfb010100vhqk.html

           

给我老师的人工智能教程打call!http://blog.csdn.net/jiangjunshow
这里写图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值