JSF重定向到其他页面
我有三个XHTML页面JSF重定向到其他页面,jsf,redirect,submit,Jsf,Redirect,Submit,我有三个XHTML页面 index.xhtml 第1.xhtml页 第2.xhtml页 在index.xhtml页面中,我有一个commandButton,它将用户发送到page\u 1.xhtml。所有这些都是在faces config.xml中的导航规则中完成的 假设两个commandButton操作都链接到支持Java类,如何使用另一个commandButton将用户从index.xhtml重定向到page_2.xhtml。在动作方法中,返回按钮对应的结果 <
index.xhtml
页面中,我有一个commandButton
,它将用户发送到page\u 1.xhtml
。所有这些都是在faces config.xml
中的导航规则中完成的
假设两个
commandButton
操作都链接到支持Java类,如何使用另一个commandButton
将用户从index.xhtml
重定向到page_2.xhtml
。在动作方法中,返回按钮对应的结果
<navigation-rule>
<from-view-id>index.html</from-view-id>
<navigation-case>
<from-outcome>page1</from-outcome>
<to-view-id>page_1.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>page2</from-outcome>
<to-view-id>page_2.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
index.html
第1页
第1.xhtml页
第2页
第2.xhtml页
添加两个导航案例,如下所示。在动作方法中,返回按钮对应的结果
<navigation-rule>
<from-view-id>index.html</from-view-id>
<navigation-case>
<from-outcome>page1</from-outcome>
<to-view-id>page_1.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>page2</from-outcome>
<to-view-id>page_2.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
index.html
第1页
第1.xhtml页
第2页
第2.xhtml页
只需将按钮绑定到不同的操作方法,每个操作方法都会返回不同的结果
与
导航案例是不必要的。JSF2.0支持隐式导航。导航结果只能是所需目标视图的路径/文件名。结果中的文件扩展名是可选的
如果您不一定需要在导航上执行任何业务操作,或者您可以在目标页面的支持bean的(post)构造函数中执行,那么您也可以直接将结果值放入操作中
然而,
将不执行重定向,而是执行转发。最终用户在浏览器地址栏中看不到正在更改的URL。目标页不可设置为书签。如果可以,我建议使用
或者,如果确实需要调用业务操作,但希望执行真正的重定向,则将faces redirect=true
作为查询字符串附加到结果值
public String goToPage1() {
// ...
return "page_1?faces-redirect=true";
}
public String goToPage2() {
// ...
return "page_2?faces-redirect=true";
}
另见:
只需将按钮绑定到不同的操作方法,每个操作方法都会返回不同的结果
与
导航案例是不必要的。JSF2.0支持隐式导航。导航结果只能是所需目标视图的路径/文件名。结果中的文件扩展名是可选的
如果您不一定需要在导航上执行任何业务操作,或者您可以在目标页面的支持bean的(post)构造函数中执行,那么您也可以直接将结果值放入操作中
然而,
将不执行重定向,而是执行转发。最终用户在浏览器地址栏中看不到正在更改的URL。目标页不可设置为书签。如果可以,我建议使用
或者,如果确实需要调用业务操作,但希望执行真正的重定向,则将faces redirect=true
作为查询字符串附加到结果值
public String goToPage1() {
// ...
return "page_1?faces-redirect=true";
}
public String goToPage2() {
// ...
return "page_2?faces-redirect=true";
}
另见:
您也可以这样做,在代码的任何部分重定向到“example.xhtml”
您也可以这样做,在代码的任何部分重定向到“example.xhtml”
为什么不复制和更改导航规则和命令按钮?@Daniel它不是这样工作的,你是使用JSF1.x还是2.x?您真的需要在页到页导航上调用托管bean操作方法吗?@BalusC-its JSF 2.0。。是的,我想是的,因为我必须在每个页面上显示不同的值。为什么要使用导航规则?你确定你没有过多地关注JSF1.x教程吗?还有,这些请求真的必须是POST请求而不是GET请求吗?为什么不复制并更改导航规则和命令按钮?@Daniel它不是这样工作的,你是在使用JSF 1.x还是2.x?您真的需要在页到页导航上调用托管bean操作方法吗?@BalusC-its JSF 2.0。。是的,我想是的,因为我必须在每个页面上显示不同的值。为什么要使用导航规则?你确定你没有过多地关注JSF1.x教程吗?此外,这些请求真的必须是POST请求而不是GET请求吗?在此场景中,您如何添加re direct?我也有同样的问题,将?faces redirect=true
添加到支持bean的返回“some_view?faces redirect=true”代码>它给了我缺少的导航规则消息。@AjaySharma在
块中,您可以添加自动关闭标记
如何在此场景中添加re direct我有相同的问题?faces redirect=true
被添加到支持bean的返回“某些视图?faces redirect=true”代码>它提供了缺少的导航规则消息。@AjaySharma在
块中,您可以添加自动关闭标记