Struts2的标签显示日期、<s:debug>标签、<s:property>使用技巧
下文会提到ValueStack和Stack Contex,关于这两个值域的具体比较可以参考蚊香无敌的BLOG:http://jwx0925.iteye.com/blog/630335
?
标签显示日期
一、这里主要以<s:date>标签为例子。例如:<s:date name="publishTime" format="yyyy-MM-dd HH:mm:ss.SSS" /> 这里格式含义:yyyy-MM-dd年月日 HH:mm:ss.SSS时分秒毫秒
但要注意几个细微的地方:
1、"yyyy-MM-dd”中的“MM”一定要大写,不然会不起作用或者时间显示不正常。因为在java中,大M表示“月(Month)",而小m表示"分"(minute)
2、后面的"HH"表示24小时制,而如果是"hh",则显示时为12小时制
3、还有一点:s:date标签使用时,一定要是Date类型。
二、如果是String型,数值型等其他类型,可以用以下方法:
1.先在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}
2.然后就可以自由的format了: <s:text name="format.date_ymd">
????????????????????????????????????????????? <s:param name="value" value=" publishTime "/>
??????????????????????????????????????????? </s:text>
?
debug标签
debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context 中的所有值信息。使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。 在页面上增加<s:debug/>标签,通过debug标签,可以看的系统中ValueStack里的全部信息,并可以看到Stack Context中的属性。
使用方式是在Jsp页面中插入: <s:debug></s:debug>标签
点击返回页面是行的[DEBUG]连接会得到如下的结果,这时可以清楚的看到ValueStack和Stack Context 中的所有值信息。
?
这个值栈又分为两种Value Stack Contents 和 Stack Context .
(1) ValueStack很简单,里面放的都是Action的属性。如果通过chain方式跳转多个Action就会包含多个Action的属性。例如fielderror、error、actionerror这些继承自ActionSupport类中。Value Stack Contents 里面的信息可以用 <s:property value="sss"> 这样来直接访问。
(2) Stack Context(Stack的上下文)的保存方式是map类型,它包含一系列对象,包括request,session,attr,application,map等。Stack Context 里面的信息可以 <s:property value="#sss">这样来访问。
?
?
property标签
在使用property标签的时候:
1.可以通过<s:property value='phoneNo.substring(0, 3) + "****" + phoneNo.substring(7)'/>这样的方式调用属性对象的函数。
2.也可以调用进入该页面的那个action所在的类的自定义函数:?? <s:property value="%{getClob(content)}" />
?
参考
1.百度知道:http://zhidao.baidu.com/question/203944207.html
2.郏高阳的BLOG:http://my.oschina.net/jgy/blog/50802