为什么要使用“redirect=true”? 在struts 1.* 中前进?

发布于 2024-07-14 18:04:15 字数 280 浏览 4 评论 0原文

我在执行未显示的操作期间创建的 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

爱情眠于流年 2024-07-21 18:04:15

它可以防止“双重提交问题”

从不显示响应 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

墟烟 2024-07-21 18:04:15

重定向向浏览器发送响应,强制浏览器发出新请求。 从服务器的角度来看,浏览器只是发出一个新请求(尽管是自动的)。 重定向的一些特征:

  • 现有参数和
    属性被处置,一个新的
    请求由参数组成
    您在 URL 中指定。
  • 新网址
    在浏览器中可见,用户
    可以添加书签。
  • 需要去一趟
    浏览器和返回,所以它可以
    慢点。

转发发生在服务器上。 浏览器不参与其中。 转发的一些特征:

  • 添加新参数或覆盖现有参数。 因此无法从请求中删除现有参数。
  • 可以在请求上下文中添加内容,它将保持可用。 您可以通过这种方式传递信息。
  • URL 在浏览器中不会更改,对于浏览器来说,原始地址保持不变。
  • 您只能转发到同一应用程序中的另一个 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:

  • The existing parameters and
    attributes are disposed, a new
    request is formed with the parameters
    you specify in the URL.
  • The new URL
    is visible in the browser, the user
    can bookmark it.
  • It takes a trip to
    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:

  • New parameters are added or overwrite existing parameters. So the existing parameters cannot be removed from the request.
  • Stuff can be added in request context, it will remain available. You can pass information in this way.
  • The URL is not changed in the browser, for the browser the original address remains intact.
  • You can only forward to another URL in the same application.

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.

哑剧 2024-07-21 18:04:15

如果您指定
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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文