Agu*_*tin 6 jsp jsp-tags jspinclude
我在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>
Run Code Online (Sandbox Code Playgroud)
原样,我得到以下异常:
Must use jsp:body to specify tag body for <MyTag if jsp:attribute is used.
Run Code Online (Sandbox Code Playgroud)
如果我删除最外面的<c:if>标签,它的工作原理.有没有用的问题<jsp:attribute>里面<c:if>?任何帮助,将不胜感激.谢谢.
小智 5
元素的主体被隐式地定义为相应元素的主体.也可以使用<jsp:body>显式表示正文.如果一个或多个<jsp:attribute>元素出现在标记的正文中,则这是必需的.检查元素,属性和正文的引用.
但这不是真正的问题.问题是<jsp:attribute>与条件标签不兼容.<jsp:attribute>正在尝试在其父标记上设置属性,在您的示例中,该标记为<c:if>.
你可以在元素中使用<c:if>(如BalusC在他的评论中所建议的那样),但是这会产生一个空值的属性,或者你可以从:
<jsp:element ...>
<c:if test="${true}">
<jsp:attribute name="extraInlineComplianceJavascript">
....
</jsp:attribute>
</c:if>
</jsp:element>
Run Code Online (Sandbox Code Playgroud)
(更详细):
<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>
Run Code Online (Sandbox Code Playgroud)
您也可以使用<c:choose>.当然,它不适用于多个属性:D.
我的个人建议是抛弃<jsp:attribute>并找到另一种有条件地设置属性的方法.
| 归档时间: |
|
| 查看次数: |
4484 次 |
| 最近记录: |