我正在尝试在 Struts2 Web 应用程序中呈现一些单选按钮。
每个value
单选按钮的 是一个整数,其关联的标签应该是一个 i18n 文本,它随值的变化而变化。i18n 键的格式为Common.eventTypeId.<<integer value>>
,(例如Common.eventTypeId.28
,Common.eventTypeId.29
等)。
但是,当我访问该页面时,标签不会被翻译,因为有错误的键:Common.eventTypeId.null
. 令我困惑的是,用于构建 i18n 键的相同变量呈现为value
单选按钮的 ok。
这是生成 HTML 代码的片段。eventTypeIds
是 aList<Integer>
包含 3 个元素:28、29 和 31。
<s:iterator value="eventTypeIds" var="eTypeId">
<div class="frm-field">
<s:set var="label" value="%{getText('Common.eventTypeId.' + eTypeId )}"/>
<s:radio name="currentActivity.eventTypeId" list="eTypeId" listValue="label"/>
</div>
</s:iterator>
相关的 i18n 键:
Common.eventTypeId.29 = CAA
Common.eventTypeId.28 = Practical
Common.eventTypeId.31 = Non-assessable activity
这是现在生成的实际 HTML:
<div class="frm-field">
<input type="radio" value="29" checked="checked" id="frm-activity_currentActivity_eventTypeId29" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId29">Common.eventTypeId.null</label>
</div>
<div class="frm-field">
<input type="radio" value="28" id="frm-activity_currentActivity_eventTypeId28" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId28">Common.eventTypeId.null</label>
</div>
<div class="frm-field">
<input type="radio" value="31" id="frm-activity_currentActivity_eventTypeId31" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId31">Common.eventTypeId.null</label>
</div>
这将是预期的 HTML:
<div class="frm-field">
<input type="radio" value="29" checked="checked" id="frm-activity_currentActivity_eventTypeId29" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId29">CAA</label>
</div>
<div class="frm-field">
<input type="radio" value="28" id="frm-activity_currentActivity_eventTypeId28" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId28">Practical</label>
</div>
<div class="frm-field">
<input type="radio" value="31" id="frm-activity_currentActivity_eventTypeId31" name="currentActivity.eventTypeId">
<label for="frm-activity_currentActivity_eventTypeId31">Non-assessable activity</label>
</div>
请注意,整数值正在使用eTypeId
变量正确显示,但在构建 i18n 键时该变量为空。我错过了什么?我误解了 s:radio 标签的用法吗?