将JSF导航规则添加到页面本身
如何定义从#{current.doLogout}到同一视图id的所有视图id的导航规则?如果在action方法中未定义任何或返回将JSF导航规则添加到页面本身,jsf,navigation,jsf-2,Jsf,Navigation,Jsf 2,如何定义从#{current.doLogout}到同一视图id的所有视图id的导航规则?如果在action方法中未定义任何或返回null或void,默认情况下,它将显示与提交表单的页面相同的页面 public void doLogout() { // Logout. } 这样,您就不需要在faces config.xml中处理导航案例。顺便问一下,您是否已经知道新的JSF 2.0“隐式导航”功能?如果您没有在action方法中定义任何或返回null或void,则默认情况下,它将显示与表
null
或void
,默认情况下,它将显示与提交表单的页面相同的页面
public void doLogout() {
// Logout.
}
这样,您就不需要在
faces config.xml
中处理导航案例。顺便问一下,您是否已经知道新的JSF 2.0“隐式导航”功能?如果您没有在action方法中定义任何或返回null
或void
,则默认情况下,它将显示与表单提交位置相同的页面
public void doLogout() {
// Logout.
}
这样,您就不需要在
faces config.xml
中处理导航案例。顺便问一下,您是否已经知道新的JSF2.0“隐式导航”功能?您需要使用通配符来实现这一点
只需在action标记中调用logout方法。只需将其添加到faces-config.xml中
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>welcome</from-outcome>
<to-view-id>/login.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
*
欢迎
/login.xhtml
您需要使用通配符来实现这一点
只需在action标记中调用logout方法。只需将其添加到faces-config.xml中
<navigation-rule>
<from-view-id>*</from-view-id>
<navigation-case>
<from-outcome>welcome</from-outcome>
<to-view-id>/login.xhtml</to-view-id>
<redirect/>
</navigation-case>
</navigation-rule>
*
欢迎
/login.xhtml
您的答案因此而异。操作方法的返回类型可以是void吗?如果我没有在faces-config.xml中定义规则,commandLink将由于缺少任何导航规则而被禁用@mvg:是的,它可以。我没有说过它必须返回字符串@那么你的问题的原因就在别的地方了。再一次,您是否知道JSF 2.0中新的隐式导航规则使整个导航规则过时了?您是指隐式导航,即返回页面名称(facelet)?事实上,我有一个命令链接,可以从任何页面(facelet)单击,并将调用会话范围bean的方法。在此之后,我希望用户访问同一页面,但他已注销,页面内容可能会有所不同。您的答案因此而有所不同。操作方法的返回类型可以是void吗?如果我没有在faces-config.xml中定义规则,commandLink将由于缺少任何导航规则而被禁用@mvg:是的,它可以。我没有说过它必须返回字符串@那么你的问题的原因就在别的地方了。再一次,您是否知道JSF 2.0中新的隐式导航规则使整个导航规则过时了?您是指隐式导航,即返回页面名称(facelet)?事实上,我有一个命令链接,可以从任何页面(facelet)单击,并将调用会话范围bean的方法。之后,我希望用户访问同一页面,但他已注销,页面内容可能不同。据我所知,您的标题和描述各不相同。当您的标题说明您需要在单击命令按钮(这是@Balusc所描述的)后进入同一页面时,您的描述说明了我所描述的内容。如果我错了,请纠正我。据我所知,你的标题和描述各不相同。当您的标题说明您需要在单击命令按钮(这是@Balusc所描述的)后进入同一页面时,您的描述说明了我所描述的内容。如果我错了,请纠正我