2013-01-04 70 views
0

我正在從事電子諮詢項目。我想一次提供多個分支和學校的選擇。我發現SelectedValues始終爲空。請告訴我它有什麼問題。從jsp到servlet中選中複選框值爲空

<table border="1" cellpadding="0" cellspacing="0" > 
     <% for(i=0;i<branchSchools.length;i++){ %> 
     <tr class=<%= (i%2==0)?"rowstyle":"altrowstyle" %> > 
      <td> 
      <input type="checkbox" name="SelectedBranchSchool" id='SelectedBranchSchool<%= i %>' value="<%= i %>"> 
      </td> 
      <td > 
       <%= branchSchools.item[i].branchCode %> 
      </td> 
      <td > 
       <%= branchSchools.item[i].school %> 
       </td> 
       <td align="right"> 
       <form name="frm5" action="addMultipleChoiceFill" method="post"> 
        <% request.getSession().setAttribute("BranchSchools",branchSchools); 
        request.getSession().setAttribute("FilledChoices",filledChoices); 
        %> 
       <input type="submit" name="addmult" value="AddMultiple"/> 
       </form> 
      </td> 
    ![enter image description here][1] 

protected void processRequest(HttpServletRequest request, HttpServletResponse response) 
throws ServletException, IOException { 
    BranchSchools branchSchools=null; 
    FilledChoices filledChoices=null; 
    branchSchools=(BranchSchools) request.getSession().getAttribute("BranchSchools"); 
    request.getSession().removeAttribute("BranchSchools"); 
    filledChoices=(FilledChoices)request.getSession().getAttribute("FilledChoices"); 
    request.getSession().removeAttribute("FilledChoices"); 
    String[] SelectedValues = request.getParameterValues("SelectedBranchSchool"); 
    for(int i=0; i<SelectedValues.length; i++){ 
     int k=Integer.valueOf(SelectedValues[i]); 
     filledChoices.addFilledChoice(branchSchools.item[k]); 
     branchSchools.removeBranchSchool(k); 
    } 
    request.setAttribute("BranchSchools",branchSchools); 
    request.setAttribute("FilledChoices",filledChoices); 
    request.setAttribute("Change", "yes"); 
    RequestDispatcher rd=getServletContext().getRequestDispatcher("/choiceFill.jsp?"); 
    rd.forward(request,response); 

回答

1

您的複選框的形式不是裏面,所以當表單提交它未提交:

<input type="checkbox" name="SelectedBranchSchool" ...> 
... 
<form name="frm5" action="addMultipleChoiceFill" method="post"> 
    ... 
    <input type="submit" name="addmult" value="AddMultiple"/> 
</form> 

此外,請尊重的Java命名約定,並閱讀有關MVC中,JSTL和最佳實踐。