之前的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标签。