我有以下代码
JSP
<tbody>
<c:forEach var="defect" items="${defects}">
<tr>
<td>${defect.name}</td>
<td>${defect.description}</td>
<td>${defect.summary}</td>
<td>${defect.priority}</td>
<td>${defect.originator.name}</td>
<td>${defect.assignee.name}</td>
<td>
<form action="AllOpenDefects?defectId=${defect.id}" method="get">
<input type="submit" value="Update" />
</form>
</td>
</tr>
</c:forEach>
</tbody>
Servlet (在doGet方法中)
System.out.println((String) request.getParameter("defectId")); // It is printing null
并且在网址中defectId
NOT 已被追加...我的代码是否有任何问题?
编辑:网址为http://localhost:8080/BugManagemetSystem/AllOpenDefects
,但应该像http://localhost:8080/BugManagemetSystem/AllOpenDefects?defectId=2
答案 0 :(得分:1)
您的浏览器似乎会在?...
属性中的action="..."
后清除参数。在这种情况下,尝试通过<input type="hidden" .../>
传递它
<form action="AllOpenDefects" method="get">
<input type="hidden" name="defectId" value="${defect.id}"/>
<input type="submit" value="Update" />
</form>
这种方式表单应将其作为?defectId
= value of ${defect.id}
添加到网址。
答案 1 :(得分:0)
恕我直言,对你的问题的简短回答是&#34;你的代码没问题&#34;。
作为旁注,如果它没有产生新的必需链接,那么它通常是一个更新问题。例如。尝试更改URL只是为了测试(form action =&#34; Junk&#34;),看看浏览器是否捕获了它。 如果没有,请尝试清除各种缓存 - 浏览器缓存,删除爆炸的战争和工作目录(例如在Tomcat中它/ webapps / myapp /和/ work)......