0

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

....

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

4

1 回答 1

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);
于 2012-11-20T19:23:27.427 回答