如何检查JSF内容是否已定义?

时间:2012-05-07 15:21:41

标签: templates jsf java-ee facelets

我有这个模板:

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

我只想在模板客户端定义右面板内容的情况下呈现右面板单元格。

1 个答案:

答案 0 :(得分: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>

我刚刚使用转义字符来渲染数据。试一试:)