最近研究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 key |
default |
struts.date.format.past |
{0} ago |
struts.date.format.future |
in {0} |
struts.date.format.seconds |
an instant |
struts.date.format.minutes |
{0,choice,1#on<wbr>e minute|1<{0} minutes}</wbr> |
struts.date.format.hours |
{0,choice,1#on<wbr>e hour|1<{0} hours}{1,choice,0#|1#, on<wbr>e minute|1<, {1} minutes}</wbr></wbr> |
struts.date.format.days |
{0,choice,1#on<wbr>e day|1<{0} days}{1,choice,0#|1#, on<wbr>e hour|1<, {1} hours}</wbr></wbr> |
struts.date.format.years |
{0,choice,1#on<wbr>e year|1<{0} years}{1,choice,0#|1#, on<wbr>e day|1<, {1} days</wbr></wbr> |
2.nice属性为false,format属性指定的格式如:dd/MM/yyyy
在这种情况下,format属性将被使用。
3 nice属性为false,format属性没有指定
i18n key |
default |
struts.date.format |
if on<wbr>e is not found DateFormat.MEDIUM format will be used</wbr> |
参数
Name
Required
Default
Evaluated
Type
Description
format |
false |
|
false |
String |
日 期格式 |
id |
false |
|
true |
String |
<wbr><wbr>与普通html的id一样</wbr></wbr> |
name |
true |
|
true |
String |
日 期的值 |
nice |
false |
false |
true |
Boolean |
是否打印出更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
分享到:
相关推荐
这些只是Struts 2 S标签库中的一部分,实际上还有许多其他标签,如`s:textfield`(文本字段)、`s:textarea`(文本区域)、`s:submit`(提交按钮)等等,它们极大地简化了MVC模式中的视图层开发。通过合理使用这些...
<p>名称:<s:property value="name"/></p> </s:iterator> ``` - **说明**:遍历一个集合或数组,并对每个元素执行标签体内的内容。 25. **`<s:label>`** - 显示标签。 - **示例**: ```jsp <s:label value=...
<%@ taglib prefix="s" uri="/struts-tags" %> 就能使用struts2.0的标签库 下面就介绍每个标签的具体应用实例说明:按字母排列 A: 1. 2. <s:a href=""></s:a>-----超链接,类似于html里的<a></a> 3. <s:...
`<s:date>`, `<s:datetimepicker>`, `<s:debug>`, `<s:div>`: `<s:date>` 标签用于格式化日期,`<s:datetimepicker>` 提供日期时间选择功能。`<s:debug>` 显示详细的调试信息,帮助开发者检查应用程序状态。`<s:div...
以上只是Struts2标签库的一部分,实际使用中还有更多标签如`<s:textfield>`(文本输入框)、`<s:textarea>`(文本区域)、`<s:submit>`(提交按钮)等,每个都有其特定的用途,极大地简化了JSP页面的编写。...
而在 Struts2 中,所有的标签都被统一管理,并通过在 JSP 文件头部声明 `<%@ taglib prefix="s" uri="/struts-tags" %>` 来启用 Struts2 的标签库。这种方式简化了开发过程中的配置工作,使得开发者可以更加专注于...
对于日期处理,Struts2提供了`<s:date>`标签,可以方便地格式化日期。例如: ```jsp <s:date name="creationDate" format="yyyy-MM-dd HH:mm:ss" /> ``` 至于树节点标签,Struts2没有内置的直接支持,但可以通过...
-- 这里可以使用<s:iterator> --> </s:generator> ``` - **解释**:生成数据项,并使用逗号分隔。 ##### 24. `<s:head>` 头部标签 - **用途**:在`<head>`标签内使用。 - **示例代码**: ```xml <s:head> ...
* <s:generator>:和 <s:iterator> 标签一起使用 H: * <s:head>:在 <head></head> 里使用,表示头文件结束 * <s:hidden>:隐藏值 I: * <s:i18n>:加载资源包到值堆栈 * <s:include>:包含一个输出,servlet ...
Struts2提供了`<s:file>`标签用于文件上传,`<s:date>`和`<s:datetime>`标签用于日期和时间的选择。 综上所述,Struts2的表单标签提供了一套完整的解决方案,覆盖了从简单的输入元素到复杂的表单交互。通过熟练掌握...
- **`<s:action>`**:用于执行Action,类似于Struts1中的`<s:send>`标签。但Struts2的`<s:action>`提供了更高级的功能,比如可以通过name属性指定Action的名称,并且可以使用额外的参数来传递数据。 #### 2. `<s:...
在Struts2中,所有的标签都统一在`<s>`前缀下,通过引入`<%@ taglib prefix="s" uri="/struts-tags" %>`就可以在页面上使用这些标签。 **A组标签:** 1. `<s:a>` - 用于创建超链接,与HTML的`<a>`标签类似,可以...
在JSP中,我们通常使用`<%@ taglib prefix="s" uri="/struts-tags" %>`来引入Struts2的标签库。下面将详细介绍一些重要的Struts2标签及其功能。 **A. 超链接和Action标签** - `<s:a href=""></s:a>`:创建一个...
- **功能**:生成一系列标签,常与`<s:iterator>`配合使用。 - **示例**: ```xml <s:generator separator=", " value="%{aaa, bbb, ccc, ddd, eee}"> <s:iterator> <s:property /><br /> </s:iterator> </s:...
1. `<s:bean>`:类似Struts1.x中的JavaBean标签,用于获取或设置JavaBean的属性。 C部分: 1. `<s:checkbox>`:创建复选框,可以绑定值。 2. `<s:checkboxlist>`:创建复选框列表,用户可选择多个值。 3. `<s:...
`<s:push>` 标签用于将值推入堆栈,以便后续的`<s:property>`等标签使用。 ### 32. `<s:radiolist>` 标签 `<s:radiolist>` 标签用于创建一组单选按钮,通常用于单选列表。 ### 33. `<s:reset>` 标签 `<s:reset>`...
`<s:date>` - 日期格式化标签 用于格式化日期。 ```jsp <s:date name="dateField" format="yyyy-MM-dd"/> ``` ##### 13. `<s:datetimepicker>` - 日期时间选择器 用于创建一个日期时间选择器。 ```jsp <s:...
- `<s:date>`:格式化日期。 - `<s:datetimepicker>`:日期时间选择器。 - `<s:property>`:输出对象的属性值。 8. **国际化与资源管理**: - `<s:i18n>`:加载资源包到值堆栈,实现多语言支持。 9. **其他...