我是JSP的新手,并尝试从ASP.NET(这是完全不同的)转换。
我基本上有一组html输入按钮。按下时,每个按钮都应重定向到同一页面。但是,我也希望传递一个参数,即我希望页面根据启动重定向的按钮来表现不同。
到目前为止,我所做的是将按钮包装在一个表单中,该表单与servlet的GET方法进行通信。从这里,我可以看到按下了哪个按钮。
我现在想重定向到页面并传递按下的按钮的值。如何才能做到这一点?我需要重定向到的页面是一个JSP页面。
我的代码:
HTML页面
<form action="DashboardServlet" method="get">
<input type="button" value="Button1" name="button1"/>
<input type="button" value="Button2" name="button2"/>
</form>
DashboardServlet
....
// If-statements to see what button was pressed
....
编辑:我在考虑使用会话来存储值。这会有效吗?
答案 0 :(得分:1)
request.getParameter("button1");
它与文本框中使用的内容非常相似。
检查按下了哪些按钮: -
if (request.getParameter("button1") != null) {
// button1 was pressed
} else if (request.getParameter("button2") != null) {
// button2 was pressed
}
将请求重定向到JSP页面时,可以将这些参数添加到请求中。您的JSP中将无法使用相同的请求参数,直到您明确添加它。
如果您使用: - RequestDispatcher.forward()
,则可以在请求中设置参数: -
request.setAttribute("button1", request.getParameter("button1").toString());
然后: -
getServletContext().getRequestDispatcher("/yourJSP.jsp").forward()
在JSP
中,使用: -
request.getAttribute("button1");
或者,如果您使用的是response.sendRidirect
,则可以将您的值添加到queryString
: -
String buttonValue = request.getParameter("button1").toString();
response.sendRedirect("/yourJSP.jsp?button1=" + buttonValue);