之前的demo中用了一些struts2标签,用的是struts2.2.1.1.
Struts2的标签常常和OGNL(图对象导航语言)一起使用。有几点总结如下:
1、struts2标签必须的jar包
struts2标签可以分为数据标签、控制标签、表单标签、AJAX标签等几类,要使用这些标签必须加入web工程的jar包有:
commons-codec-1.6.jar
commons-fileupload-1.2.1.jar
commons-io-1.3.2.jar
commons-logging-1.1.1.jar
freemarker-2.3.16.jar
ognl-3.0.jar
struts2-core-2.2.1.1.jar
struts2-dojo-plugin-2.2.1.1.jar
xwork-core-2.2.1.1.jar
其中的struts2-dojo-plugin-2.2.1.1.jar包含了struts2 ajax主题的模板,其他都是struts2.2必须的jar包
2、struts2标签与过滤器
只有经过strtus2核心过滤器过滤的请求所请求的资源(jsp或action的视图)中才能使用struts2标签。所以如果要在一个不作为action返回视图的jsp页面中使用struts2标签的话,就必须配置web.xml,使得struts2过滤器对所有的请求都有效:
<filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping>
3、ajax标签
如果使用ajax标签,除了在jsp页面开头引用struts标签库:
<%@taglib prefix="s" uri="/struts-tags"%>
之外,还需要在页面的head中加入
<s:head theme="ajax" />(之后的ajax标签用s前缀)
或者在页面的开头加入对dojo标签库的引用
<%@ taglib prefix="sx" uri="/struts-dojo-tags"%>(之后页面中的ajax标签用sx前缀)
4、struts2标签库的局限
struts2标签库不是万能的,比如想在一个form中使用多个不同名的combobox标签就很难做到,必要之时还是得自己写js实现。
此外,struts2标签中只能使用ognl表达式,不能使用jsp标签。