我已经尝试这个一周了。我的 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/