2009-02-11 54 views
7

我正試圖在Facelets/JSF環境中完成一個小小的調整。我幾乎不知道它是如何融合在一起的。Facelets:如何傳遞一個ui:插入值作爲html屬性?

我曾在不同的頁面爲「標題」

<ui:define name="title">PageUID_123</ui:define> 

在另一頁,我引用這與定義的值:

<ui:insert name="title"/> 

我可以包裝插入就好包圍HTML代碼,但我需要能夠輸出「title」的值作爲另一個元素的屬性。我的最終目標是爲它在HTML渲染這樣的:

<meta name="pageid" content="PageUID_123"/> 

如果我嘗試把插入標籤的內容=「」位,它拋出一個解析錯誤。有沒有辦法做到這一點?

回答

6

我沒有在我面前的工作環境,但我相信你不想使用<ui:define>,而是要使用<ui:param>,然後使用${x}#{x}(或忘記它,或者如果它事項)把他們拉出來。

所以,你比如你會:

<ui:param name="title" value="PageUID_123" /> 

然後:

<meta name="pageid" content="${title}"/> 

我與唯一擔心的是,你正在使用包括有很好的模板,即

模板:

<html> 
    <head> 
     <meta name="pageid" content="${title}"/> 
    </head> 
    <body> 
     <ui:insert name="content" /> 
    </body> 
</html> 

內頁:

<html xmlns="...so many"> 
    <ui:param name="title" value="PageUID_123" /> 
    <ui:define name="content"> 
     <!-- content goes here --> 
    </ui:define> 
</html> 

而且我真的不知道這是否會飛...

編輯:你可能想嘗試${title}#{title}只是踢你正在做的方式現在,它可能只是工作。

+1

在facelets中,使用$ {x}或#{x}並不重要。它們的含義相同:https://facelets.dev.java.net/nonav/docs/dev/docbook.html#el – 2009-09-23 08:37:05

相關問題