3

我有这个模板:

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

只有当模板客户端定义了右面板内容时,我才想渲染右面板单元格。

4

1 回答 1

-1

尝试这个

模板:

    <!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>

我只是使用转义字符来呈现数据。试一下 :)

于 2012-05-11T10:36:11.947 回答