1、sturts2的標簽很豐富。用起來也很方便,但是它的樣式不太好,最好能夠自定義一套樣式!若不想用sturts2
缺省的樣式,就使用theme="simple"。
sturts2中的有些標簽,是用js框架寫的,需要加載這些框架(如:dojo)。在jsp頁面中使用<s:head/>加載這些框架和css!
2、sturts2中的國際化,又其攔截器完成。攔截器會根據用戶瀏覽器設置的不同來,自動適配!只需要定義多個資源文件
就可以!
資源文件可以是全局的(在classes中),也可以是局部的(在各個特定的包中)!
對資源文件的要求:
要注意資源文件的命名規范!例如:package_en_US.properties和package_zh_CN.properties
I、兩種實現國際化的方法,key和lable方式!
例如:
a、<s:textfield label="%{getText('username')}" name="username"/>
b、<s:textfield key="username" name="username"/>
II、單個的資源信息提取的兩種方式:
例如:
a、<s:property value="getText('main.message')"/>
b、<s:text name="main.message"/>
III、在s:datetimepicker標簽中可以使用,key和label兩種方式來進行國際化
key="date"
label="%{getText('date')}"
這個日期標簽,在中文環境和英文環境下的顯示形式是不一樣的
中文:2007-11-12
英文:11/14/2007
所以在進行日期處理的時候要小心
3、對于分步表單提交和“后退”網頁過期的問題有待繼續研究!
對于表單重復提交的問題可以使用<s:token/>來解決!
在使用token時,需要配置攔截器,而且在Action中需要定一個常量!
例如:
頁面:<s:token/>
xml: <interceptor-ref name="defaultStack" />
<interceptor-ref name="token" />
Action:private static final long serialVersionUID = 6820659617470261780L;
4、個人感覺struts2的Validation(驗證框架)不是很好,效率也不高,而且需要定義比較復雜的XXXAction-validation.xml文件.
所以對于頁面上的限制還是使用js或js框架(如:jquery,dojo,portaltype)!
5、<s:submit key="back" name="redirect-action:crud!list" />這種實現方式比較好!
<s:submit key="back" onclick="#:history.back();" />
這種實現方式不好,因為它會自動刷新頁面;當有添加,刪除,更新操作時,就重復的刷新頁面!不推薦使用!
6、<s:select label="%{getText('user.from')}"
name="user.from"
headerKey=""
headerValue="Select From"
list="fromArray"
listKey="id"
listValue="name"
value="user.from"
required="true" />
<%--
name="user.from"是用于通過struts2內在的機制給Action自動賦值
list="fromArray"是一個封裝了bean的list,其中的bean 有id和name屬性
listKey="id"
listValue="name"
那么,當用戶提交表單的時候,sturts2的內在機制,會自動為我們裝載的!
需要我們在Action里定義一個user bean,其中user中有一個from屬性
要是嵌套定義,如:user bean 中又定義了一個bean(DateBean)。那么在頁面就要使用user.date.year這種形式,來向Action傳值!
其中,date是user bean 中的一個屬性,struts2會自動為你裝載!
--%>