如何传递隐藏参数?我想调用一个页面(test.jsp),但还要传递2个隐藏的参数,如post。
response.sendRedirect("/content/test.jsp");
TheNewIdiot的答案成功说明了问题以及无法通过重定向发送请求中的属性的原因。可能的解决方案:
ServletRequest#getAttribute
控制器(您的servlet)
request.setAttribute("message", "Hello world"); RequestDispatcher dispatcher = servletContext().getRequestDispatcher(url); dispatcher.forward(request, response);
查看(您的JSP)
使用脚本:
<% out.println(request.getAttribute("message")); %>
这仅供 参考 。 必须避免使用小脚本:如何避免JSP文件中的Java代码?。下面是使用EL和JSTL的示例。
<c:out value="${message}" />
控制者
//if request is not from HttpServletRequest, you should do a typecast before HttpSession session = request.getSession(false); //save message in session session.setAttribute("helloWorld", "Hello world"); response.sendRedirect("/content/test.jsp");
视图
再次,使用scriptlet和EL + JSTL进行显示:
<% out.println(session.getAttribute("message")); session.removeAttribute("message"); %> <c:out value="${sessionScope.message}" /> <c:remove var="message" scope="session" />