Struts 2で複数のチェックボックスのデフォルト値を設定する方法
Struts 2では、<s:checkboxlist>タグを使用して同じ名前の複数のチェックボックスを作成できます。 トリッキーな部分は、複数のチェックボックスでデフォルト値を設定する方法です。 たとえば、「赤」、「黄」、「青」、「緑」のオプションがあり、デフォルトのチェック値として「赤」と「緑」の両方を設定するチェックボックスのリスト。
1. の例
<s:checkboxlist>の例
次のHTMLコードが生成されます
チェックボックスに色オプションのリストを提供するアクションクラス。
//...
public class CheckBoxListAction extends ActionSupport{
private List colors;
private String yourColor;
public CheckBoxListAction(){
colors = new ArrayList();
colors.add("red");
colors.add("yellow");
colors.add("blue");
colors.add("green");
}
public List getColors() {
return colors;
}
//...
}
2. 単一のデフォルトのチェック値
「red」オプションをデフォルトのチェック値として設定するには、Actionクラスにメソッドを追加し、「red」値を返します。
//...
public class CheckBoxListAction extends ActionSupport{
//add a new method
public String getDefaultColor(){
return "red";
}
}
<s:checkboxlist> tagで、value属性を追加し、getDefaultColor()メソッドをポイントします。
Struts 2は、「defaultColor」値を対応するJavaプロパティgetDefaultColor()に一致させるのに十分インテリジェントです。
再度実行すると、デフォルトで「赤」オプションがチェックされます。
2. 複数のデフォルトのチェック値
複数の値「red」と「green」をデフォルトのチェック値として設定するには、「String」ではなく「String []」を返すだけで、Struts2はそれに応じて一致します。
//...
public class CheckBoxListAction extends ActionSupport{
//now return a String[]
public String[] getDefaultColor(){
return new String [] {"red", "green"};
}
}
もう一度実行すると、「red」および「green」オプションがデフォルトでチェックされます。