Struts 2 CheckboxList example
Struts 2에서 제공하는 체크박스 관련 태그(checkbox, checkboxlist)에 대한 예제
<s:checkboxlist> 태그
struts.xml
<action name="checkboxAction"
class="chapter03.CheckBoxAction">
<result>chapter03/checkbox.jsp</result>
</action>
CheckBoxAction.java
package chapter03;
import java.util.*;
import com.opensymphony.xwork2.ActionSupport;
public class CheckBoxAction extends ActionSupport {
List<String> cbLabels; // 체크박스의 라벨
String resultSel; // 체크박스 선택결과
List<String> defaultSel; // 디폴트 선택항목
public CheckBoxAction() {
cbLabels = new ArrayList<String>();
cbLabels.add("독서");
cbLabels.add("게임");
cbLabels.add("등산");
cbLabels.add("취침");
defaultSel = new ArrayList<String>();
defaultSel.add("독서");
}
@Override
public String execute() throws Exception {
return SUCCESS;
}
public List<String> getCbLabels() {
return cbLabels;
}
public String getResultSel() {
return resultSel;
}
public void setResultSel(String resultSel) {
this.resultSel = resultSel;
}
public List<String> getDefaultSel() {
return defaultSel;
}
}
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="EUC-KR"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<title>Struts2 CheckBox Test</title>
</head>
<body>
<s:form action="checkboxAction" theme="simple">
취미를 선택하세요<p>
<s:checkboxlist
list="cbLabels" name="resultSel" value="defaultSel" />
<p>
<s:property value="resultSel"/>
<p>
<s:submit/> <s:reset/>
</s:form>
</body>
</html>
다중선택을 위해 <c:checkbox> 태그를 여러개 제시한 경우
checkbox.jsp
<%@ page language="java" contentType="text/html; charset=utf-8"
pageEncoding="EUC-KR"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<!DOCTYPE html>
<html>
<head>
<title>Struts2 CheckBox Test</title>
</head>
<body>
<s:form action="checkboxAction" theme="simple">
취미를 선택하세요<p>
독서<s:checkbox name="hobbys" value="%{'독서' in hobbys}" fieldValue="독서"/>
등산<s:checkbox name="hobbys" value="%{'등산' in hobbys}" fieldValue="등산"/>
낚시<s:checkbox name="hobbys" value="%{'낚시' in hobbys}" fieldValue="낚시"/>
취침<s:checkbox name="hobbys" value="%{'취침' in hobbys}" fieldValue="취침"/>
<p>
<s:property value="hobbys"/>
<p>
<s:submit/> <s:reset/>
</s:form>
</body>
</html>
CheckBoxAction.java (아래의 경우에는 List<String>형으로 파라미터를 받고 있지만 배열(String[])도 사용할 수 있다)
package chapter03;
import java.util.*;
import com.opensymphony.xwork2.ActionSupport;
public class CheckBoxAction extends ActionSupport {
List<String> hobbys; // 체크박스 선택결과
@Override
public String execute() throws Exception {
return SUCCESS;
}
public List<String> getHobbys() {
return hobbys;
}
public void setHobbys(List<String> hobbys) {
this.hobbys = hobbys;
}
}