這必須很簡單。我正在嘗試將子元素傳遞給JSF組件。我有我的組件聲明:在JSF 2.0組件中包含子元素
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:composite="http://java.sun.com/jsf/composite">
<composite:interface>
</composite:interface>
<composite:implementation>
<div style="border: 1px solid black;">
<ui:insert />
</div>
</composite:implementation>
</html>
然後我用這一個頁面的:「世界,你好」
<box:box>
<p>Hello world!</p>
</box:box>
不幸的是,盒子呈現OK(黑色邊框),但文字不包含在其中。我還嘗試使用<ui:insert name="content">
和<ui:define name="content">Hello World!</ui:define>
調用更詳細的語法,但它不起作用。
我可能在哪裏犯錯?
是的,這將是一種方式來做到這一點,但它是非常醜陋的設計。另外,如果我想要使用更長的XHTML/JSF代碼作爲子元素呢?將內容作爲字符串屬性傳遞是不方便的。相反,我嘗試過的樣式(使用' ')應該可以工作,如http://www.packtpub.com/article/creating-composition-components-in-jsf-2.0所示(請參閱「元素合成組件「)。本書的JSF 2 API和JBoss Seam也介紹了這種方法。但是,在我的測試中,它失敗了。 –
2010-08-13 10:58:40