gpt4 book ai didi

java - JSPX 中的条件 HTML 属性

转载 作者:搜寻专家 更新时间:2023-11-01 02:52:02 24 4
gpt4 key购买 nike

使用 JSPX 有条件地打印 html 属性的正确方法是什么?

这些都会在 p 标签上抛出验证错误:

    /* first try */

<p ${true ? 'name="foobar"' : ''}>hello</p>

/* second one */

<c:set var="somevar" scope="page">
<c:if test="${true}">
name="foobar"
</c:if>
</c:set>
<p ${somevar}>hello</p>

元素类型“p”后必须跟有属性规范“>”或“/>”。 在 org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)

编辑:附加完整代码

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:field="urn:jsptagdir:/WEB-INF/tags/form/fields" xmlns:form="urn:jsptagdir:/WEB-INF/tags/form" xmlns:jsp="http://java.sun.com/JSP/Page" xmlns:spring="http://www.springframework.org/tags" version="2.0">
<jsp:directive.page contentType="text/html;charset=UTF-8"/>
<jsp:output omit-xml-declaration="yes"/>

<p ${true ? 'name="foobar"' : ''}>hello</p>

</div>

最佳答案

问题是 Jasper 会在处理 EL 之前尝试验证 JSP 的良好形式。

发生这种情况是因为您的文件应该具有的 JSPX 扩展名意味着它是一个 JSP 文档。和 JavaServer Pages Specification说:

It is a translation-time error for a file that is identified as a JSP document to not be a well-formed, namespace-aware, XML document.

我找不到任何方法来指示 Jasper 禁用 XML 格式良好性验证。

预编译 JSP 文件的 Ant 任务,如 Tomcat docs 中所述有validateXml范围。但它只是跳过了对 valid XML 的检查, 不适用于 well-formed XML .

所以您的选择是要么将文件重命名为 JSP,要么添加 <is-xml>false</is-xml>web.xml ,或遵循@damo_inc 的建议。

关于java - JSPX 中的条件 HTML 属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9359209/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com