Struts2設置多個複選框缺省值
在Struts2,可以通過<s:checkboxlist>標籤創建多個複選框具有相同名稱。棘手的問題是如何設置的默認值在多個複選框。例如,複選框以「紅色」,「黃色」,「藍色」,「綠色」選項的列表,並且要同時設置「紅色」和「綠色」爲默認選中的值。這裏創建一個Web工程:struts2setcheckboxes,來演示在多個複選框如何設置的默認值,整個項目的結構如下圖所示:
下載代碼 – http://pan.baidu.com/s/1bnfrCUr
1. <s:checkboxlist> 實例
一個 <s:checkboxlist> 示例
<s:checkboxlist label="What's your favor color" list="colors" name="yourColor" />
產生下面的HTML代碼
Action類提供顏色選項的複選框的列表。
//...
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」的值。
//...
public class CheckBoxListAction extends ActionSupport{
//add a new method
public String getDefaultColor(){
return "red";
}
}
在<s:checkboxlist>標籤中,添加一個value屬性並指向 getDefaultColor()方法。
<s:checkboxlist label="What's your favor color" list="colors"
name="yourColor" value="defaultColor" />
Struts 2將「defaultColor」值匹配到對應Java屬性getDefaultColor()。
再次運行它,「紅」選項將被默認選中。
2. 多個默認選中的值
要設置多個值「紅色」和「綠色」作爲默認選中的值,就返回一個「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" />
再次運行它,「紅色」和「綠色」的選項將被默認選中。
http://localhost:8080/struts2setcheckboxes/checkBoxListAction.action
點擊提交後,顯示結果如下圖所示: