Teedaの力を知るために、登録画面→確認画面を作っている途中に
Java Expert #02に書かれていた「ラベルの自動引継ぎ」を実装してみることにしました。
セレクトボックスについては問題なく引き継がれたのですが
ラジオボタンの方がうまく引き継がれず考えた末エントリー。
ソースは以下の通り
遷移元
HTMLファイル(抜粋)
<table>
<tr>
<td>職業</td>
<td>
<input type="hidden" id="syokusyuItemsSave" />
<span id="radioSyokusyu">
<span id="syokusyuItems">
<input type="radio" name="radioSyokusyu" value="1" id="code" />
<span id="syokusyu" te:omittag="true">dummy</span>
</span>
</span>
</td>
</tr>
<tr>
<td>出身地(都道府県)</td>
<td>
<input type="hidden" id="prefItemsSave" />
<select id="prefItems">
<option value="0">未選択</option>
</select>
</td>
</tr>
</table>Pageクラス(抜粋)
public class SamplePage {
public String radioSyokusyu;
public String codeValue;
public String syokusyu;
public String syokusyuLabel;
public List<SyokusyuDto> syokusyuItems;
@Required
public String pref;
public String prefLabel;
public List<PrefDto> prefItems;
public Class<?> doNext() {
return Sample2Page.class;
}
public Class<?> initialize() {
return null;
}
public Class<?> prerender() {
syokusyuItems = new ArrayList<SyokusyuDto>();
SyokusyuDto syokusyuDto = new SyokusyuDto();
syokusyuDto.codeValue = "1";
syokusyuDto.syokusyu = "学生";
syokusyuItems.add(syokusyuDto);
syokusyuDto = new SyokusyuDto();
syokusyuDto.codeValue = "2";
syokusyuDto.syokusyu = "社会人";
syokusyuItems.add(syokusyuDto);
prefItems = new ArrayList<PrefDto>();
PrefDto prefDto = new PrefDto();
prefDto.value = "1";
prefDto.label = "東京都";
prefItems.add(prefDto);
prefDto = new PrefDto();
prefDto.value = "2";
prefDto.label = "大阪府";
prefItems.add(prefDto);
return null;
}
}
遷移先
HTMLファイル(抜粋)
<form id="Form">
<span id="syokusyuLabel"></span>
<span id="prefLabel"></span>
</form>Pageクラス(抜粋)
public class Sample2Page {
public String syokusyuLabel;
public String prefLabel;
public Class<?> initialize() {
return null;
}
public Class<?> prerender() {
return null;
}
}
セレクトボックス、ラジオボタン共に"Items", "ItemsSave"を記述してあり、
"〜Label"も遷移元、先のフィールドに宣言してあるのになぁ・・・
以上