2011-02-28 83 views
0

如何定义从#{current.doLogout}中的所有view-id到同一个view-id的导航规则?JSF导航规则到页面本身

+0

您对我的知识的标题和描述各不相同。虽然您的标题声明您需要在点击命令按钮(这是@Balusc描述的内容)后才能进入同一页面,但您的描述会说明我描述的内容。请纠正我,如果我错了 – mvg 2011-03-01 10:57:45

回答

2

如果您没有在操作方法中定义任何或返回nullvoid,它将默认显示与提交表单相同的页面。

public void doLogout() { 
    // Logout. 
} 

这种方式,你不需要在faces-config.xml摆弄导航案例。 您是否已经意识到新的JSF 2.0“隐式导航”功能?

+0

你的答案因此而异http://stackoverflow.com/questions/3909267/differences-between-action-and-actionlistener。返回类型的行为方法可以是无效的吗? – mvg 2011-03-01 06:12:06

+0

如果我没有在faces-config.xml中定义规则,那么由于缺少任何导航规则,commandLink将被禁用! – ehsun7b 2011-03-01 09:02:41

+0

@mvg:是的,它可以。我没有在任何地方说过它必须返回一个'String'。 @ehsun:那么问题的原因就在于别的地方。再次,您是否了解JSF 2.0中的新隐式导航规则,这会导致整个导航规则过时? – BalusC 2011-03-01 11:32:40

3

您需要使用通配符来实现这一

只需拨打行动标签注销方法。并将其添加到您的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>