gpt4 book ai didi

java - JSF 使用的后果

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:16 24 4
gpt4 key购买 nike

而不是附加 ?faces-redirect=true我的每一个 Action <h:commandButton /> , 我想在 faces-config.xml 中永久使用它一次但我还不确定使用它的后果。

规定redirect将被用来代替 forward .但后果是什么?这是一种不好的做法吗,它会影响持久性和 servlet 请求和响应吗?

对我来说,REDIRECT 的使用只是为了正确的 URL 浏览器显示。我打算使用这样的东西:

<navigation-rule>
<from-view-id>/*</from-view-id>
<navigation-case>
<from-outcome>*</from-outcome>
<redirect />
</navigation-case>
</navigation-rule>

非常感谢您的指导。

最佳答案

重定向基本上是指示浏览器创建一个全新的 HTTP GET 请求。因此,在进行重定向时,所有请求(和 View )范围内的 beans 都将被丢弃。在表单操作期间设置的任何请求范围的数据在新请求中将不再可用。如果这是一个主要问题,那么最好的办法是将它放在 session 范围内,但这会产生更大的后果: session 范围 bean 中的任何更改都会反射(reflect)在同一浏览器选项卡/窗口中发生的所有操作中 session 。另一种方法是将感兴趣的数据作为重定向 URL 的查询字符串传递,但这很麻烦且丑陋。

如果您确实没有需要在重定向请求中保留的数据,那么您可以这样做。但这给前面带来了一个新问题:你为什么要使用 POST 请求?您正在向服务器提交东西吗?还是您将其用于纯粹的页面到页面导航?这个问题让我认为是后者。在那种情况下,您根本不应该使用 POST 进行页面到页面的导航,而应该使用 GET。这可以通过 <h:button> 来实现(及其等效链接 <h:link> )

<h:button value="Next page" outcome="nextpage" />

如果真的是前者,我会坚持下去。您不想为 POST 请求添加书签。

另见:

关于java - JSF <redirect/> 使用的后果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6325054/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com