2012-06-15 52 views
1

我創建了一個使用Facelets定義頁面結構的JSF 2頁面。JSF鏈接無法在Facelets上工作

<div class="page"> 
    <div class="content"> 
     <ui:insert name="content"> 

     </ui:insert> 
    </div> 
    <div class="footer"> 
     <ui:include src="footer.xhtml" /> 
    </div> 
</div> 

這是footer.xhtml

<h:commandButton value="Link Page 1" action="page1.xhtml" />  
<h:commandButton value="Link Page 2" action="page2.xhtml" /> 

正如你所看到的,在footer.xhtml我有一些按鈕,我用在頁面之間移動。

不幸的是,當按鈕放入footer.xhtml頁面時導航不起作用。另一方面,如果他們被放置在主分區(內容),他們正常工作。

有沒有辦法讓他們在頁腳上工作呢?

P.s.我的JBoss應用服務器7 感謝 琳達

回答

1

你的commandButton/commandLink元素對環境的Java 1.6習慣的工作,如果你不把它們放入一個表單元素<h:form></h:form>。 記住正確的命名空間添加到您的<ui:composition>元素「xmlns:h="http://java.sun.com/jsf/html

+0

謝謝。對我感到羞恥!我忘了將它包含在表單中。謝謝! –

1

對於純粹的導航,你應該使用h:button代替h:commandButton。後者確實需要克里斯所說的周邊形式。

如果您改變如下按鈕,就應該不管在哪裏工作,你將它們放置在頁面上:

<h:button value="Link Page 1" outcome="page1" /> 
<h:button value="Link Page 2" outcome="page2" /> 

.xhtml後綴由JSF追加。

+0

確實,使用POST進行純頁面到頁面導航是Bad™。另見http://stackoverflow.com/questions/4317684/when-should-i-use-houtputlink-instead-of-hcommandlink – BalusC