java - 如何从 resultList 中单独持久化另一个表

标签 java jsp enterprise

我已经尝试这个一周了。我的 session bean 中有一个工作方法,它工作得非常好,并显示 MySQL 表中的用户列表。

我想使用 radio 输入类型选择特定用户并将其详细信息插入到另一个表中。

我的问题是,每次尝试时,进入表格的都是显示的数据的第一个值,而不是我在 radio 输入类型上单击其 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>

         <% } %>    

最佳答案

阅读该脚本有点困难,我可能是错的,但我在这里看到的是您的结果页面有类似的内容:

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

然后是另一种形式:

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

还有一个用于迭代器中的下一个。这基本上不是一个正确的方法。首先,不同形式的单选按钮具有不同的值。因此,选择哪一个并不重要:)此外,表单没有不同的名称,这实际上破坏了 html 的工作方式。

因此,为了使其发挥作用(我相信它会起作用,尽管这不是一个好主意),您可以为不同的形式指定不同的名称。所以它们变成类似 <form action="" method="post" name="firstForm">等等。在这里,您可以通过将其更改为仅提交表单:

<button type="submit" form="firstForm" value="Submit">Submit</button>

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

  • 为了给您一些启发,也许正确的方法是在页面中使用一个表单而不是多个表单。但在您的场景中,可能需要一些 JavaScript 或重新设计页面。

关于java - 如何从 resultList 中单独持久化另一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50134125/

相关文章:

java - PROGUARD:使用 keepInnerClass 标志是否会丢失有关其是否静态的信息

Java I/O 到 .txt 文件

java - 停止 int 在一定时间内增加或减少

java - 另一个Maven "Source option 6 is no longer supported. Use 7 or later."

java - tomcat7 出现内存不足错误

java - Eclipse Tomcat 7 服务器不支持远程主机

java - 使用java servlet将excel文件发送到客户端

php - 在脚本执行期间显示启动画面

ios - 如何在基于wkwebview的应用程序上支持kerberos SSO?

Android,配置 Wifi Enterprise PEAP 和 EAP-Fast