我在 JSP 中有以下内容:
<c:if test="${true}">
<jsp:attribute name="extraInlineComplianceJavascript">
window.isSummaryComplianceLinkVisible = '${TabList.isSummaryComplianceLinkVisible}';
window.isDetailComplianceLinkVisible = '${TabList.isDetailComplianceLinkVisible}';
window.complianceSummaryReportTag = '${helper.complianceSummaryReportTag}';
window.complianceDetailReportTag = '${helper.complianceReportTag}';
</jsp:attribute>
</c:if>
按原样,我得到以下异常:
Must use jsp:body to specify tag body for <MyTag if jsp:attribute is used.
如果我删除最外面的<c:if>
标签,它有效。使用有问题吗<jsp:attribute>
里面一个<c:if>
?任何帮助,将不胜感激。谢谢。
元素的主体隐式定义为相应元素的主体。主体也可以使用
显式表示。如果一个或多个
元素出现在标记主体中,则这是必需的。查看参考资料element http://java.sun.com/products/jsp/syntax/2.0/syntaxref2016.html, 属性 http://java.sun.com/products/jsp/syntax/2.0/syntaxref2014.html and body http://java.sun.com/products/jsp/syntax/2.0/syntaxref2015.html.
但这不是真正的问题。问题是 不能很好地与条件标记配合使用。 尝试在其父标记上设置属性,在您的示例中为 。
您可以在元素内使用 (正如 BalusC 在他的评论中建议的那样),但这将导致属性具有空值,或者您可以从:
<jsp:element ...>
<c:if test="${true}">
<jsp:attribute name="extraInlineComplianceJavascript">
....
</jsp:attribute>
</c:if>
</jsp:element>
至(更详细):
<c:if test="${true}">
<jsp:element ...>
<jsp:attribute name="extraInlineComplianceJavascript">
....
</jsp:attribute>
</jsp:element>
</c:if>
<c:if test="${false}">
<jsp:element ...>
<!-- no attribute for false -->
</jsp:element>
</c:if>
您还可以使用 。当然,它不能与多个属性一起很好地工作:D。
我个人的建议是扔掉 并找到另一种方法来有条件地设置属性。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)