我应该如何将值传递给页面?

时间:2012-11-20 19:21:47

标签: java html jsp java-ee servlets

我是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

....

编辑:我在考虑使用会话来存储值。这会有效吗?

1 个答案:

答案 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);