使用struts 2中的复选框和arraylist

时间:2012-10-30 04:50:28

标签: struts2

我在动作类中有一个数组列表。我想在我的jsp页面中访问这个arraylist以及一个复选框。如果选中该复选框,我想在另一个actionclass中获取checkbox的关联值。我怎么能这样做?

动作类:

public class CreateModuleAction extends ActionSupport{
       private List modNameList=new ArrayList();
    private int size;
public String manageModule()
    {

      ManageModule ob=new ManageModule();
      modNameList=ob.selectModule();

      if(modNameList.isEmpty()) {
          addActionError("Module list is empty!!!");
          return ERROR;

        }
      else{
         setSize(modNameList.size());
         return SUCCESS;  
          }

    }
public List getModNameList() {
        return modNameList;
    }

    public void setModNameList(List modNameList) {
        this.modNameList = modNameList;
    }

    public int getSize() {
        return size;
    }

    public void setSize(int size) {
        this.size = size;
    }

jsp页面:

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html>
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <link href="../css/style.css" rel="stylesheet" type="text/css" />
        <title>Admin Module Management</title>
    </head>
    <body>
             <div class="main">
            <div class="header"> 
<!--              Page heading-->

               <jsp:include page="/templates/heading.jsp" flush="true"/> 
            </div>
            <div class="menu">
<!--                Page menu-->

 <jsp:include page="/templates/menu.jsp" flush="true"/> 
            </div>
            <div class="content">
<!--                page content-->

               <div id="right_top" style="position:absolute; left:900px; top:300px;;">
                   <a href="adminCreateModule.jsp"><img src="../images/add.jpg"/>Add</a>
                   <a href="adminEditModule.jsp"><img src="../images/edit.jpg"/>Edit</a>
                   <a href="adminDeleteModule.jsp"><img src="../images/add.jpg"/>Delete</a>
               </div>
              <s:iterator status="size" value="modNameList">
                  <s:checkbox name="modNameCheck" fieldValue="true" value="modNameList"/>
                  <s:property value="modNameList"/>
              </s:iterator>
              <s:actionerror/>

            </div>
            <div class="footer" style="margin-left: 50%">
<!--                page footer-->

              <jsp:include page="/templates/footer.jsp" flush="true"/> 
            </div>

        </div>
    </body>
</html>

2 个答案:

答案 0 :(得分:0)

为什么不使用struts2 checkboxlist tag

<s:form action="myAction">
  <s:checkboxlist list="modNameList" name="modNameCheck"/>
</s:form>

现在在yoyr myAction动作类声明

private List modNameCheck; //with getter/setter

它将具有在jsp中检查的条目

答案 1 :(得分:0)

如果要将复选框中的值提交给操作,则需要在JSP中使用form。如果要根据操作中的某些值显示选中/取消选中的复选框,则需要在value属性中进行一些条件检查。

<s:checkbox name="modNameCheck" value="list.contains(something)"/>