1

我是 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 个下拉选项都被同一个 select variable name 捕获Stat_Match_name。所以db_Match_Edit.jsp我只得到最后选择的选项U_Stat_Match_name

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

4

1 回答 1

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。我建议专注于更新和理智的学习资源。从如何避免 JSP 文件中的 Java 代码开始?然后阅读我们的 JSP wiki 页面

于 2013-01-04T13:45:18.173 回答