Struts2 key鍵屬性範例


在Struts2,在UI元件的「key」屬性來處理在地化的常用方法,也是編碼UI標籤的一個非常有效的方式。見下面兩種情況:

1. Properties屬性檔案

屬性檔案包含一條訊息。

global.properties

global.username = Username

2. 範例1

如果分配一個「key」屬性到一個文字框。鍵(key)屬性會從資源包中獲取資訊,並使其在預設XHTML text.tfl模板基礎上渲染。

<s:form action="validateUser">
	<s:textfield key="global.username" />
</s:form>
現在它將會使用「global.username {left-side}」和 「Username {right-side}」,並匹配相應的XHTML text.tfl模板。
<td class="tdLabel">
   <label for="validateUser_{left-side}" class="label">{right-side}:</label>
</td>
<td>
   <input type="text" name="{left-side}" value="" id="validateUser_{left-side}"/>
</td>

最後的 HTML

<td class="tdLabel">
   <label for="validateUser_global_username" class="label">Username:</label>
</td>
<td>
   <input type="text" name="global.username" value="" id="validateUser_global_username"/>
</td>
鍵屬性將使用 {left-side}作為文字框名稱和ID; {right-side} 作為標籤值。

3. 範例2

在某些情況下,可能需要顯式宣告的一個不同的名稱的文字框。
<s:form action="validateUser">
	<s:textfield key="global.username" name="username"/>
</s:form> 

現在key屬性將使用「Username {right-side}」來只匹配的標籤值, 文字框的名稱和ID將明確覆蓋。

最後的 HTML

<td class="tdLabel">
   <label for="validateUser_username" class="label">Username:</label>
</td>
<td>
   <input type="text" name="username" value="" id="validateUser_username"/>
</td>
key屬性可以提高你的開發速度,使程式碼更有效,這是值得學習的。