jsp-循环输入标记,用于多个值

时间:2013-01-04 13:41:14

标签: java arrays jsp

我是JSP新手并没有太多想法。所以,让我澄清一下我的要求。

假设我有一个如下程序,其中有First.jsp数组Match_List[5]

String[] Match_List; 
Match_List[] = {a, b, c, d, e};

<form name="Team_Playerdetails" method="post" action="db_Match_Edit.jsp"> 
  <TABLE> 
  <% for (int j = 0; j < 10; j++) { %>  
    <TR>    
      <TD> 
        <SELECT name="Stat_Match_name"> 
        <% for (int i = 0; i < 5; i++) { %> 
          <option> 
            <% out.println(Match_List[i][1]); %> 
          </option> 
        <% } %> 
        </SELECT> 
      </TD> 
    </TR> 
  <% } %> 
  </TABLE> 
  <input type="submit" name="submit" value="Add All" tabindex="10" class="button" /> 
</form> 

现在,上面的表单将显示相同的下拉列表10次。我想在这十个列表中选择不同的选项,如下所示:

List_1 Option: a 
List_2 Option: d 
List_3 Option: e 
List_4 Option: b 
List_5 Option: c 
..... 
List_10 Option: d 

现在我需要一旦用户点击提交按钮,那么该变量应该移动到db_Match_Edit.jsp。在这里,我将使用代码来捕获值

U_Stat_Match_name = request.getParameter("Stat_Match_name");

但是,由于所有10个下拉选项都被相同的选择变量名称Stat_Match_name捕获。因此,db_Match_Edit.jsp我只会在U_Stat_Match_name中获得最后一个选项。

但是我需要数组中db_Match_Edit.jsp jsp中的所有10个选定选项。

1 个答案:

答案 0 :(得分:0)

要么只使用HttpServletRequest#getParameterValues()

String[] statMatchNames = request.getParameterValues("Stat_Match_name");
// ...

或者根据迭代索引给每个人一个唯一的值:

<select name="Stat_Match_name_<%=j%>"> 

并按如下方式单独抓取它们:

for (int j = 0; j < 10; j++) {
    String statMatchName = request.getParameter("Stat_Match_name_" + j);
    // ...
}

无关具体问题,这个老式的JSP代码风格表明你正在通过一个可能超过10年的过时资源来学习JSP。我建议专注于更近期和理智的学习资源。从How to avoid Java code in JSP files?开始,然后阅读our JSP wiki page