<s:checkbox name="codeId" fieldValue="%{serviceType}" theme="simple"></s:checkbox>

위의 태그는 실제로 다음의 HTML을 만듬.

<input type="checkbox" name="codeId" value="s1" id="getServiceType_codeId"/>
<input type="hidden" id="__checkbox_getServiceType_codeId" name="__checkbox_codeId" value="s1" />

아래의 히든 input은 스트러츠에서 쓰는 듯하고,
체크 박스에 값 설정하려면 스트러츠 태그에서 value속성이 아닌 fieldValue를 써야한다. 주의!

참조: http://struts.apache.org/2.1.6/docs/checkbox.html

추가.
value속성은 boolean값 입력해서 checked/unchecked 설정하는데 쓰임
JSP:
<s:checkbox label="checkbox test" name="checkboxField1" value="aBoolean" fieldValue="true"/>

Velocity:
#tag( Checkbox "label=checkbox test" "name=checkboxField1" "value=aBoolean" )

Resulting HTML (simple template, aBoolean == true):
<input type="checkbox" name="checkboxField1" value="true" checked="checked" />

추가2.

체크박스가 같은 이름으로 여럿이고 그 중에서 체크된 것의 값만을 받으려 할 때,
일일이 체크된 것을 스크립트로 계산할 필요없다.
Action에 멤버변수로 체크박스의 체크된 값만을 받을 수 있다.

<s:checkbox name="codeId" fieldValue="%{serviceType}" theme="simple"></s:checkbox>
이 경우엔 Action에서
private String codeId;로 해서 getter/setter만 있으면 체크된 것들의 fieldValue만 가져온다.
"XXXX, XXXX, XXXX" 와 같이 콤마로 구분한다. 다만 사이사이 공백도 있으므로 trim할 것.

추가3.
checkbox 인터셉터를 설정하면 체크안해도 값을 넘겨받을 수 있다.
<!-- 회원관리 -->
        <action name="manage*" class="com.omp.bp.cms.manage.action.ManageAction" method="manage{1}">
            <interceptor-ref name="checkbox">
              <param name="uncheckedValue">N</param> // uncheck시 값
          </interceptor-ref>
            <interceptor-ref name="bpCommonStack"></interceptor-ref>
            <result>/cms/manage/manage{1}.jsp</result>
            <result name="JoinApproved" type="redirect">/manage/manageJoin.omp</result>
            <result name="Updated" type="redirect">/manage/manageMember.omp</result>
        </action>


'프로그래밍 > Framework' 카테고리의 다른 글

[Strust2] <s:radio> 사용법  (1) 2009.07.29
[Struts2] Model-driven interceptor  (0) 2009.05.27
[iBatis] queryForMap() 사용법  (0) 2009.04.21
[iBatis] iterate 사용법  (1) 2009.04.13
[Struts2] <s:iterator> <s:if> 사용법  (0) 2009.04.13