在Struts 2中,UI组件中的“ key ”属性是处理本地化的常用方法,也是对UI标签进行编码的非常有效的方法。 参见以下两种情况:
1.属性文件
属性文件包含一条消息。
global.properties
global.username = Username
2.案例1
如果您将' key '属性分配给文本字段。 key属性将从资源包中获取消息,并基于默认的xhtml text.tfl模板对其进行呈现。
<s:form action="validateUser">
<s:textfield key="global.username" />
</s:form>
现在,它将从global.properties文件中获取“ 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>
key属性将使用{left-side}作为文本框的名称和ID; {right-side}作为标签值。
3.案例2
在某些情况下,您可能需要为文本框显式声明一个不同的名称。
<s:form action="validateUser">
<s:textfield key="global.username" name="username"/>
</s:form>
现在,键属性将使用“ 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>
关键属性可以提高您的开发速度,并使您的代码更高效,值得学习。
标签: struts2
翻译自: https://mkyong.com/struts2/struts-2-key-attribute-example/