Struts 2の複数のチェックボックスのデフォルト値を設定する方法
Struts 2では、
<s:checkboxlist>
タグを使用して同じ名前の複数のチェックボックスを作成できます。トリッキーな部分は、複数のチェックボックスにデフォルト値を設定する方法です。たとえば、「赤」、「黄」、「青」、「緑」のオプションを持つチェックボックスのリストで、デフォルトのチェック値として「赤」と「緑」の両方を設定したいとします。
ダウンロードする – リンク://wp-content/uploads/2010/06/Struts2-default-value-multiple-checkboxes-example.zip[Struts2-default-value- multiple- checkbox-example.zip]
1. <s:checkboxlist>例
A
<s:checkboxlist>
例
<s:checkboxlist label="What's your favor color" list="colors" name="yourColor"/>
次のHTMLコードが生成されました
<td class="tdLabel"><label for="resultAction__yourColor" class="label"> What's your favor color:</label> </td> <td > <input type="checkbox" name="yourColor" value="red" id="yourColor-1"/> <label for="yourColor-1" class="checkboxLabel">red</label> <input type="checkbox" name="yourColor" value="yellow" id="yourColor-2"/> <label for="yourColor-2" class="checkboxLabel">yellow</label> <input type="checkbox" name="yourColor" value="blue" id="yourColor-3"/> <label for="yourColor-3" class="checkboxLabel">blue</label> <input type="checkbox" name="yourColor" value="green" id="yourColor-4"/> <label for="yourColor-4" class="checkboxLabel">green</label> <input type="hidden" id="____multiselect__resultAction__yourColor" name="____multiselect__yourColor" value=""/> </td>
アクションクラスを使用して、チェックボックスにカラーオプションのリストを提供します。
….//…
public class CheckBoxListAction extends ActionSupport{
private List<String> colors; private String yourColor;
public CheckBoxListAction(){
colors = new ArrayList<String>(); colors.add("red"); colors.add("yellow"); colors.add("blue"); colors.add("green"); }
public List<String> getColors() { return colors; } //... }
=== 2.単一のデフォルトのチェック値 "** red ** "オプションをデフォルトのチェック値として設定するには、Actionクラスにメソッドを追加し、 "** red ** "値を返します。 ....//... public class CheckBoxListAction extends ActionSupport{ //add a new method public String getDefaultColor(){ return "red"; } }
<s:checkboxlist label="What's your favor color" list="colors" name="yourColor" value="defaultColor"/>
Struts 2は、 ”
defaultColor
“の値を対応するJavaプロパティ
getDefaultColor()
に一致させるのに十分なインテリジェントです。
再度実行すると、デフォルトで「赤い」オプションがチェックされます。
2.複数のデフォルトチェック値
デフォルトのチェック値として複数の値 ”
red
“と ”
green
“を設定するには、 “String”の代わりに ”
String[]
“を返すだけで、それに応じてStruts 2が一致します。
….//…
public class CheckBoxListAction extends ActionSupport{
//now return a String[] public String[]getDefaultColor(){ return new String[]{"red", "green"}; } }
<s:checkboxlist label=”What’s your favor color” list=”colors”
name=”yourColor” value=”defaultColor”/>
もう一度実行すると、デフォルトで "** red ** "と "** green ** "オプションがチェックされます。 link://tag/checkbox/[checkbox]link://tag/struts2/[struts2]