2012-05-07 75 views
2

我有這樣的模板:我如何檢查JSF內容是否被定義?

<tr> 
    <td> 
     <ui:insert name="content">Content</ui:insert> 
    </td> 
    <td class="rightpanel"> 
     <ui:insert name="rightpanel">RP</ui:insert> 
    </td> 
</tr> 

,我想渲染只有rightpanel內容是由模板客戶端中定義rightpanel細胞。

+0

只要保持空白。如果某些東西是在模板客戶端中定義的,那麼它將替換它,否則它將變爲空白(或空白頁)。 – neni

+0

但是如果UI的內容是空白的,我不想渲染整個'​​'。 – kravemir

+0

如果你想​​是動態的,不要把它放在模板中。在模板客戶端中定義它。 – neni

回答

0

試試這個

模板:

<!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:h="http://java.sun.com/jsf/html"> 

<h:head> 
</h:head> 

<h:body> 
    <tr> 
     <td> 
      <ui:insert name="content">Content</ui:insert> 
     </td> 

      <ui:insert name="rightpanel"></ui:insert> 

    </tr> 
</h:body> 
</html> 

模板客戶端

<!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:h="http://java.sun.com/jsf/html" 
    xmlns:c="http://java.sun.com/jsp/jstl/core"> 

<h:body> 
    <ui:composition template="./TestTemplate.xhtml"> 

     <ui:define name="content"> 
       ABCDEF 
      </ui:define> 
     <ui:define name="rightpanel"> 
      <h:outputText escape="false" value="<td> ABCD </td>"> 
      </h:outputText> 
     </ui:define> 
    </ui:composition> 
</h:body> 
</html> 

我只是用轉義字符來呈現數據。試一試:)