之前的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過濾器對所有的請求都有效:
[html]
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<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實現