struts2.1.6已不用s:datetimepicker标签,要想使用,需导入struts2-dojo-plugin-2.1.6.jar,
在页面导入 <%@taglib prefix="sx" uri="/struts-dojo-tags" %>标签,
<head> </head>中加入 <sx:head extraLocales="en-us,nl-nl,de-de" />
<sx:datetimepicker label="日期" name="inputDate" value="%{'today'}" />就能使用了
我测试了一把还是有些问题从九月份到十二月份的显示还 有些问题 如下图所示: 哪位有清楚?给说声谢谢
二,struts2读取AJAX标签
2.1.2以上版本的,要在工程中加个struts2-dojo-plugin.jar
到页面加上<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>
把<s:head theme="ajax"/>改为<sx:head/>
三, OGNL中的#、%和$符号
OGNL中的#、%和$符号
#、%和$符号在OGNL表达式中经常出现,而这三种符号也是开发者不容易掌握和理解的部分。在这里笔者简单介绍它们的相应用途。
1.#符号
#符号的用途一般有三种。
访问非根对象属性,例如示例中的#session.msg表达式,由于Struts 2中值栈被视为根对象,所以访问其他非根对象时,需要加#前缀。实际上,#相当于ActionContext. getContext();#session.msg表达式相当于ActionContext.getContext().getSession(). getAttribute("msg") 。
用于过滤和投影(projecting)集合,如示例中的persons.{?#this.age>20}。
用来构造Map,例如示例中的#{'foo1':'bar1', 'foo2':'bar2'}。
2.%符号
%符号的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。如下面的代码所示:
<h3>构造Map</h3>
<s:set name="foobar" value="#{'fool':'bar1','foo2':'bar2'}"/>
<p>The value of key "fool" is<s:property value="#foolbar['fool']"/></p>
<p>不使用%:<s:url value="#foolbar['fool']" /></p>
<p>使用%:<s:url value="%{#foolbar['fool']}"/></p>
构造Map
The value of key "foo1" is
不使用%:
使用%:
运行界面如图8.4所示。
![]() |
图8.4 “%”的OGNL表达式用法 |
3.$符号
$符号主要有两个方面的用途。
在国际化资源文件中,引用OGNL表达式,例如国际化资源文件中的代码:reg.agerange=国际化资源信息:年龄必须在${min}同${max}之间。
在Struts 2框架的配置文件中引用OGNL表达式,例如下面的代码片断所示:
10 100 BAction-test校验:数字必须为${min}为${max}之间!
<validators>
<field name="intb">
<field-validator type="int">
<param name="min">10</param>
<param name="max">100</param>
<message>BAction-test 校验:数字必须为${min}和${max}之间!</message>
</field-validator>
</field>
</validators>