Struts2學習(五)———— s標籤和國際化
一、s標籤
在struts-2.3.15.1/docs/WW/docs/tag-reference.html下,就有著struts2所有標籤的參考文獻,只能看看其中比較常用的標籤。其他的以後遇到了在看參考文獻即可。
通用標籤,control Tags 和 DataTags,下面用方框圈起來的就是我們需要了解的
1.1、if、elseif、else 標籤。
這個很簡單,流程控制的標籤,跟我們平常寫的if語句基本上類似。test用來編寫條件的
1.2、Iterator
迭代器標籤,用來迴圈迭代集合或陣列中的資料。還可以當for迴圈一樣去使用,非常常用,看看如何使用
迭代list集合。
控制迴圈次數
獲取迭代時的一些狀態資訊
1.3、a和url標籤
s:url標籤:通常用來生成action路徑,域<c:url>標籤很類似
s:a標籤
1.4、<s:property/>標籤
在前面也使用過了,用來執行ognl表示式,最為常用的方式是使用它在頁面上輸出ValueStack或ActionContext中的資料。
1.5、<s:set/>標籤
建立一個變數,並將其儲存到指定的範圍內。
<s:set var=”myVar” value=”#parameters.score[0]” scope=”page”/>,建立一個變數,儲存到page範圍,key為myVar,值為“#parameters.score[0]”的運算結果
注意:scope有一個action範圍,並且他也是scope的預設值,它表示儲存到request和OgnlContext兩個範圍中,即比request範圍多了一個OgnlContext範圍。
1.6、<s:push/>標籤
<s:push>標籤是把指定值暫時壓入到值棧中,當執行完<s:push>標籤後,壓入到值棧中的值會被彈出
1.7、<s:debug/>標籤
Debug標籤用於除錯,它在頁面中生成一個“[Debug]”超連結,單擊這個超連結,可以檢視ValueStack和ActionContext中儲存的所有物件
表單標籤
Struts2的表單標籤還是比較好用的,但它也存在一些敗筆,例如主題這一部分就不是很靈活。所以導致開發中沒有公司會使用它提供的主題
Struts2標籤的優勢:
l 簡化程式碼;一般般啦
l 自動資料回顯;這個很不錯。
| 指定主題樣式(說是優點,但很多人也會認為這是缺點)
標籤樣式修改
三個地方可以修改
1、在<s:textfield>的theme屬性指定為simple,那麼這個表單項就使用簡單主題
2、 在<s:form>的theme屬性指定為simple,那麼整個表單都使用簡單主題;
3、設定struts.ui.theme常量為simple,那麼所有表單標籤的預設主題都是simple (常用這個)
二、struts2的國際化
國際化的使用範圍,
全域性國際化檔案,整個程式都可以使用(常用)
特定包中可以使用(一個包中所有Action可以使用)
特定Action可以使用(一個Action可以使用)
臨時資訊檔案(JSP中i18n標籤中可以使用)
JSP頁面獲取國際化資源
使用<s:text/>標籤, <s:text name="key" />
action中獲取國際化資源
this.getText("key");
配置檔案中獲取國際化資源
key(直接使用國際化配置檔案中的key值即可獲得)
2.1、全域性國際化檔案
1、配置三個配置檔案
格式:基本名稱_語言_國家.properties
res_zh_CN.properties res_en_US.properties res.properties
res可以隨便取值的,比如下面我使用的i18n
res_zh_CN.properties:代表其中放的是中文
res_en_US.properties: 英文
res.properties:根據瀏覽器設定的什麼語言,就顯示那種語言。只提供中文和英文兩種選擇。
內容:
2、struts.xml中申明國際化資原始檔的位置以及作用範圍
value:標識資原始檔的位置在哪裡,如果在src下,那麼就直接寫國際化資原始檔的基本名稱,如果在別的包下,那麼就需要將完整包名寫出來
3、使用國際化資原始檔
在jsp、action、資原始檔中使用國際化資原始檔有不同的格式,看上面即可。
2.2、特定包中可以使用(一個包中所有Action可以使用)
只需要將國際化資原始檔的名稱和位置固定,不需要在struts.xml中指定,注意,在特定包
比如只想在com.wuhao.internationa包下使用,
位置:com.wuhao.internationa包下建立package_zh_CN.properties檔案
名稱:com.wuhao.internationa.package_zh_CN.properties
注意:這個檔案也可以在com.wuhao.internationa包的子包中被使用
2.3、特定Action可以使用(一個Action可以使用)
很簡單,只需要將國際化資原始檔的名稱和位置固定,不需要在struts.xml中指定,
名稱:Action名_語言_國家.properties 比如:InternationAction_zh_CN.properties
位置:與該action同包下
2.4、臨時資訊檔案(JSP中i18n標籤中可以使用)
也就是隻能通過i18n標籤來拿到國際化資原始檔中的屬性
名稱:基本名稱_語言_國家.properties
例如:res_zh_CN.properties
位置:隨便放哪
使用:
兩個name的意思分別為 國際化資原始檔所放位置 和 資原始檔中的欄位屬性名。
<s:i18n name="com.wuhao.internation.res">
<s:text name="username"/>
</s:i18n>
三、總結
非常簡單,掌握標籤的使用,和知道標籤優點即可。自動回顯功能。自動佈局,但是需要注意,struts2標籤自帶的樣式問題,一般不使用,會設定為simple。