1. 程式人生 > >Struts2 框架學習——s標籤和國際化

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>標籤是把指定值暫時壓入到值棧中,當執行完標籤後,壓入到值棧中的值會被彈出

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標籤中可以使用)

SP頁面獲取國際化資源

使用<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。