我创建了一个注册页面(r.jsp),我们可以在其中输入用户详细信息。单击submit按钮后,将点击servlet,它将执行业务逻辑。如果成功,它将重定向到x.jsp;否则,如果失败,它将重定向到r.jsp。
我遇到的问题是,当出现故障时,它会重定向到r.jsp,用户输入的数据就会丢失。我想保留它。
下面是我在servlet中执行的代码:
if (appResponse.getMessageStatus().equalsIgnoreCase(AppConstants.SUCCESS)) {
request.setAttribute("message", appResponse.getMessage());
url = "/x.jsp";
} else {
request.setAttribute("message", appResponse.getMessage());
url = "/r.jsp";
}
RequestDispatcher dispatcher = request.getRequestDispatcher(url);
dispatcher.forward(request, response);发布于 2013-02-23 03:15:27
只需在输入元素中重新显示请求参数映射中提交的值。请求参数映射位于${param}提供的JSP/EL中。
<input name="foo" value="${fn:escapeXml(param.foo)}" />
<input name="bar" value="${fn:escapeXml(param.bar)}" />
<input name="baz" value="${fn:escapeXml(param.baz)}" />请注意,JSTL fn:escapeXml()是防止XSS攻击所必需的。您可以省略它,但是这样您就有了一个XSS hole。
<input name="foo" value="${param.foo}" />
<input name="bar" value="${param.bar}" />
<input name="baz" value="${param.baz}" />另请参阅:
与具体问题无关的,你根本没有重定向。你只是在转发。但是,在提交成功的情况下,您应该实际进行重定向,以避免在按下F5时重复提交(根据PRG pattern)。
另请参阅:
https://stackoverflow.com/questions/15031436
复制相似问题