我的 JSP 页面中有一个下拉菜单,它是通过 <s:select>
实现的标记为
<s:select name="priorToApplyingInfo.userProfile.phoneNumbers[0].type"
listKey="key" listValue="value" list="phoneTypes" headerKey="0" headerValue=""/>
现在下拉菜单中的值来自列表 phonetypes
它被实现为 HashMap
在.java
文件。
phoneTypes = new LinkedHashMap<Integer, String>();
phoneTypes.put(new Integer(1), getText("HOME"));
// Phone ContactBook category for the business phone
phoneTypes.put(new Integer(DAOHelperFactory.OWNER_PROFILE_PHONE_CATEGORY), getText("WORK"));
phoneTypes.put(new Integer(3), getText("MOBILE"));
phoneTypes.put(new Integer(DAOHelperFactory.OWNER_PROFILE_FAX_CATEGORY), getText("FAX"));
phoneTypes.put(new Integer(5), getText("OTHER"));
preferredContact = new ArrayList<String>();
preferredContact.add(getText("HOME"));
preferredContact.add(getText("WORK"));
preferredContact.add(getText("MOBILE"));
preferredContact.add(getText("FAX"));
preferredContact.add(getText("EMAIL"));
preferredContact.add(getText("OTHER"));
bestContactTime = new ArrayList<String>();
bestContactTime.add(getText("AFTERNOON"));
bestContactTime.add(getText("EVENING"));
bestContactTime.add(getText("MORNING"));
像home=home
这样的键, work=work
等,位于 .properties
中文件 我正在致力于此页面的国际化,但我无法找到一种方法来获取该页面的翻译
下拉菜单中的值。
最佳答案
要更改 Struts2 应用程序中的区域设置,您需要包含 requst_locale
某些链接或表单的参数。
<s:url var="urlen" includeParams="all" value="">
<s:param name="request_locale">en</s:param>
</s:url>
<s:a href="%{#urlen}">English</s:a>
如果您想从操作类更改区域设置,请使用 ActionContext
设置它并将其放入 HTTP session 中。
ActionContext.getContext().setLocale(locale);
session.put(I18nInterceptor.DEFAULT_SESSION_ATTRIBUTE, locale);
<小时/>
您可以调用getText
方法也在 JSP 中 listValue
<s:select>
的属性标签。
<s:select name="priorToApplyingInfo.userProfile.phoneNumbers[0].type"
list="phoneTypes" headerKey="0" headerValue=""
listKey="key" listValue="%{getText(value)}"/>
关于java - 下拉菜单中的 i18n 使用 s :select tag,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18407063/