将JSP中的参数传递给Servlet

时间:2015-03-15 17:53:43

标签: java jsp servlets

我有以下代码

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

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)......