首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重定向到相同的jsp时丢失的值(没有Ajax)

问重定向到相同的jsp时丢失的值(没有Ajax)
EN

Stack Overflow用户
提问于 2013-02-23 03:06:35
回答 1查看 1.8K关注 0票数 0

我创建了一个注册页面(r.jsp),我们可以在其中输入用户详细信息。单击submit按钮后,将点击servlet,它将执行业务逻辑。如果成功,它将重定向到x.jsp;否则,如果失败,它将重定向到r.jsp。

我遇到的问题是,当出现故障时,它会重定向到r.jsp,用户输入的数据就会丢失。我想保留它。

下面是我在servlet中执行的代码:

代码语言:javascript
复制
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);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-23 03:15:27

只需在输入元素中重新显示请求参数映射中提交的值。请求参数映射位于${param}提供的JSP/EL中。

代码语言:javascript
复制
<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。

代码语言:javascript
复制
<input name="foo" value="${param.foo}" />
<input name="bar" value="${param.bar}" />
<input name="baz" value="${param.baz}" />

另请参阅:

与具体问题无关的,你根本没有重定向。你只是在转发。但是,在提交成功的情况下,您应该实际进行重定向,以避免在按下F5时重复提交(根据PRG pattern)。

另请参阅:

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15031436

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档