Struts2 Web アプリケーションでいくつかのラジオボタンをレンダリングしようとしています。
各ラジオボタンのvalue
は整数であり、関連付けられたラベルは i18n テキストである必要があります。これは値の関数として変化します。i18n キーの形式Common.eventTypeId.<<integer value>>
は , です (例: Common.eventTypeId.28
、Common.eventTypeId.29
など)。
ただし、ページにアクセスすると、間違ったキーがあるため、ラベルが翻訳されません: Common.eventTypeId.null
. value
私を困惑させているのは、i18nキーを構築するために使用されたのと同じ変数が、ラジオボタンのとして正常にレンダリングされることです。
HTML コードが生成されるスニペットを次に示します。eventTypeIds
は、List<Integer>
28、29、31 の 3 つの要素を含む です。
<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 キーを作成するとき、その変数は null であることに注意してください。私は何が欠けていますか?s:radio タグの使い方を誤解していませんか?