如何单独从resultList中持久保存另一个表

时间:2018-05-02 11:57:15

标签: java jsp enterprise

我现在已经尝试了一个星期了。我的会话bean中有一个工作方法非常正常,并显示MySQL表中的用户列表。

我想使用无线电输入类型选择特定用户,并将其详细信息插入另一个表格。

我的问题是,每次尝试时,它都是显示的数据的第一个值,而不是我在无线电输入类型上单击其ID的数据。我不知道出了什么问题。

    <%

    if (request.getParameter("submit) != null 
     && request.getParameter("id") != null){              

        String id   = request.getParameter("id");             
        String vote = request.getParameter("vote");
        String name = request.getParameter("name");
        String code = request.getParameter("code");
        String msg  = "";

        try {
            Result one = new Result(id, vote, name, code);
            sl.castvote(one);
            msg = "User successfuly added";
        } catch (Exception e) {
            msg ="error";
        }
    }

    %>
      <% List one = sl.viewAllContestants();
         Iterator two = one.iterator();
      <%
         while(two.hasNext()) {
             Contestants type = (Contestants) two.next();
       %>

         <form action="" method="post">

         <input type="radio" name="id" class="form-control" value="<%=type.getId()%>"  />
         <input type="text"  name="vote" value="1" hidden />
         <input type="text"  name="dept" value="<%=type.getDepartment() %>" hidden />
         <input type="text"  name="col"  value="<%=type.getCollege() %>" hidden /> 
         <input type="text"  name="pos"  value="<%=type.getPosition() %>" hidden />
         <input type="text"  name="type" value="<%=type.getElectionType()%>" hidden />
         <input type="text"  name="name" value="<%=type.getName() %>" hidden  />
         <input type="text"  name="code" value="<%=type.getCode() %>" hidden />
         <input type="submit" name="submit" />

         </form>

         <% } %>    

1 个答案:

答案 0 :(得分:1)

阅读那个小脚本有点难,我可能错了,但我在这里看到的是你的结果页面有类似的内容:

var Output = students.GroupBy(std => std.Name)
             .Select(grp => new
             {
               Name = grp.Key,
               Score = grp.Sum( i => i.Score),
               Average = decimal.Round(grp.Average(s => s.avr),1),
               Star = grp.Count(i=> i.Score == 5)
            });

然后另一种形式:

<form>
  <radio name="id" value="some value" />
  some other fields
  <submit>
</form>

还有另一个用于迭代器中的下一个。这基本上不是一个正确的方法。首先,您可以使用不同形式的单选按钮的不同值。所以选择哪一个并不重要:)这些表格没有不同的名称,这实际上打破了html的工作方式。

所以为了使这项工作(我相信它会起作用,即使它不是一个好主意)你可以给不同的形式赋予不同的名称。因此,它们变成类似<form> <radio name="id" value="some value" /> some other fields <submit> </form> 等的内容。在此,您可以通过将提交更改为仅提交表单:

<form action="" method="post" name="firstForm">

因为使用您当前的设计,所有提交按钮都会提交第一个表单;)

  • 为了给你一些思考的食物,也许正确的方法是在页面中有一个表单而不是多个表单。但在您的场景中,可能需要一些javascript或重新设计页面。