Templates 如何检查是否定义了JSF内容?
我有这个模板:Templates 如何检查是否定义了JSF内容?,templates,jsf,jakarta-ee,facelets,Templates,Jsf,Jakarta Ee,Facelets,我有这个模板: <tr> <td> <ui:insert name="content">Content</ui:insert> </td> <td class="rightpanel"> <ui:insert name="rightpanel">RP</ui:insert> </td> </tr> 我只想在模
<tr>
<td>
<ui:insert name="content">Content</ui:insert>
</td>
<td class="rightpanel">
<ui:insert name="rightpanel">RP</ui:insert>
</td>
</tr>
我只想在模板客户端定义了rightpanel内容的情况下呈现rightpanel单元格。试试这个
模板:
<!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>
我只是使用转义字符来呈现数据。试试看:试试这个
模板:
<!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>
我只是使用转义字符来呈现数据。试试看:保持空白即可。如果模板客户端中定义了某些内容,那么它将替换它,否则它将是空白的或空白页面。但如果ui的内容是空白的,我不希望呈现整个内容。如果您希望该内容是动态的,请不要将其放在模板中。在模板客户端中定义它。我知道这是一个老问题,但如果有人到了这里,请看,我在那里找到了更好的解决方案,因为@neni答案在我看来像是一个解决方法。请保持空白。如果模板客户端中定义了某些内容,那么它将替换它,否则它将是空白的或空白页面。但如果ui的内容是空白的,我不希望呈现整个内容。如果您希望该内容是动态的,请不要将其放在模板中。在模板客户端中定义它。我知道这是一个老问题,但如果有人到了这里,请看,我在那里找到了一个更好的解决方案,因为@neni答案在我看来像是一个解决办法。