我怎样才能有条件地将某些东西包裹在 HTML 元素中
How can I envelope something in HTML element conditionally
在使用 JSF、JSTL 和 Trinidad 创建的页面上,我有一些调用了很多属性的标记。
<tr:selectBooleanRadio
group="#{groupId}"
id="#{groupId}_#{Id}_radio"
selected="#{value.yesterday}"
text="#{msg.ib_selectTimeIntervalRadio_yesterday_label}"
shortDesc="#{ib:fn_coalesce(title,label)}"
simple="#{ib:fn_coalesce(simple,true)}"
styleClass="#{ib:fn_coalesce(styleClass,'selectTimeIntervalRadio')}"/>
我想在 <td>
元素中或直接有条件地显示它。现在我这样做:
<c:when test="#{not horizontal}">
<tr>
<td>
<tr....>
</td>
</tr>
</c:when>
<c:when test="#{horizontal}">
<tr...>
</c:when>
这样我重复了两次相同的代码,这显然是不好的。我能做什么?
恕我直言,为 tr... 调用创建新的自定义组件是没有用的 - 调用它会遇到所有相同的问题。
也许,我可以有条件地将一个标签包裹在另一个标签中?可以吗?
另一种方法可能是:将 tr... 标签放在某种变量中,并在构造此变量时使用相同的标签。也许,有可能?
你知道另一种避免代码重复的方法吗?
如果您使用的是旧版 JSP,请将其包装在 <f:verbatim>
中。
<f:verbatim rendered="#{not horizontal}"><tr><td></f:verbatim>
<tr:selectBooleanRadio ... />
<f:verbatim rendered="#{not horizontal}"></td></tr></f:verbatim>
如果您正在使用 JSPX 或 Facelets,这会在上述构造上产生 XML 错误,这在 XML 中是非法的,请将其转义为 <h:outputText escape="false">
.
<h:outputText value="<tr><td>" escape="false" rendered="#{not horizontal}" />
<tr:selectBooleanRadio ... />
<h:outputText value="</td></tr>" escape="false" rendered="#{not horizontal}" />
在使用 JSF、JSTL 和 Trinidad 创建的页面上,我有一些调用了很多属性的标记。
<tr:selectBooleanRadio
group="#{groupId}"
id="#{groupId}_#{Id}_radio"
selected="#{value.yesterday}"
text="#{msg.ib_selectTimeIntervalRadio_yesterday_label}"
shortDesc="#{ib:fn_coalesce(title,label)}"
simple="#{ib:fn_coalesce(simple,true)}"
styleClass="#{ib:fn_coalesce(styleClass,'selectTimeIntervalRadio')}"/>
我想在 <td>
元素中或直接有条件地显示它。现在我这样做:
<c:when test="#{not horizontal}">
<tr>
<td>
<tr....>
</td>
</tr>
</c:when>
<c:when test="#{horizontal}">
<tr...>
</c:when>
这样我重复了两次相同的代码,这显然是不好的。我能做什么?
恕我直言,为 tr... 调用创建新的自定义组件是没有用的 - 调用它会遇到所有相同的问题。
也许,我可以有条件地将一个标签包裹在另一个标签中?可以吗?
另一种方法可能是:将 tr... 标签放在某种变量中,并在构造此变量时使用相同的标签。也许,有可能?
你知道另一种避免代码重复的方法吗?
如果您使用的是旧版 JSP,请将其包装在 <f:verbatim>
中。
<f:verbatim rendered="#{not horizontal}"><tr><td></f:verbatim>
<tr:selectBooleanRadio ... />
<f:verbatim rendered="#{not horizontal}"></td></tr></f:verbatim>
如果您正在使用 JSPX 或 Facelets,这会在上述构造上产生 XML 错误,这在 XML 中是非法的,请将其转义为 <h:outputText escape="false">
.
<h:outputText value="<tr><td>" escape="false" rendered="#{not horizontal}" />
<tr:selectBooleanRadio ... />
<h:outputText value="</td></tr>" escape="false" rendered="#{not horizontal}" />