2011-02-28 94 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>