为什么要使用“redirect=true”? 在struts 1.* 中前进?
我在执行未显示的操作期间创建的 ActionMessages
遇到了一些问题,我发现我的问题是由于我的转发具有 redirect=true
在 struts-config.xml 中。
由于默认行为是 redirect=false
,我一直在思考使用 redirect=true
可以带来哪些好处,但我找不到任何答案。 有谁知道何时以及为什么应该在动作转发中使用 redirect=true
?
I've been having some problems with ActionMessages
created during execution of an action which didn't display, and I found out that my problems were due to my forwards having redirect=true
in struts-config.xml.
Since the default behavior is redirect=false
, I've been thinking about which benefits can one have using redirect=true
and I couldn't find any answer. Does anyone know when and why redirect=true
should be used in action forwards?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
它可以防止“双重提交问题”
从不显示响应 POST 的页面
始终使用 GET 加载页面
使用 REDIRECT 从 POST 导航到 GET
更多信息这个此处和此处
it prevents the 'double submit problem'
Never show pages in response to POST
Always load pages using GET
Navigate from POST to GET using REDIRECT
more on this here and here
重定向向浏览器发送响应,强制浏览器发出新请求。 从服务器的角度来看,浏览器只是发出一个新请求(尽管是自动的)。 重定向的一些特征:
属性被处置,一个新的
请求由参数组成
您在 URL 中指定。
在浏览器中可见,用户
可以添加书签。
浏览器和返回,所以它可以
慢点。
转发发生在服务器上。 浏览器不参与其中。 转发的一些特征:
所以这取决于你想要完成什么。 前锋通常语速更快。 但如果用户应该能够为新位置添加书签,则这不是一个选项。
Redirect sends a response to the browser that forces the browser to make a new request. From the server point of view, the browser just makes a new request (albeit autmatically). Some characteristics of a redirect:
attributes are disposed, a new
request is formed with the parameters
you specify in the URL.
is visible in the browser, the user
can bookmark it.
the browser and back, so it can be
slower.
A forward happens on the server. The browser is not involved in this. Some characteristics of the forward:
So it depends on what you want to accomplish. A forward is generally spoken faster. But if the user should be able to bookmark the new location, it is not an option.
如果您指定
redirect="true"
,Struts 使用客户端重定向 [response.sendRedirect()
]。 JSP 将由新的浏览器请求调用,并且旧请求中存储的所有数据都将丢失。If you specify
redirect="true"
, Struts uses a client-side redirect [response.sendRedirect()
]. The JSP will be invoked by a new browser request, and any data stored in the old request will be lost.