【问题标题】:One JSP getting org.xml.sax.SAXParseException; Attribute "var" was already specified for element "c:set"一个 JSP 得到 org.xml.sax.SAXParseException;已经为元素“c:set”指定了属性“var”
【发布时间】:2016-06-24 02:59:20
【问题描述】:

我是 Java 服务器开发的新手,我正在将用 ColdFusion 编写的 Web 应用程序转换为 Glassfish 4 上的 Java EE Web 应用程序。这个应用程序是 JSP 重的(最好使用 servlet)。这是设计使然,不是我的决定。

错误是:

org.apache.jasper.JasperException:

PWC6170:来自 >TagLibraryValidator for sql 的验证错误消息

空:org.xml.sax.SAXParseException; >行号:1726;列号:3;已经为 >element "c:set" 指定了属性 "var"。

似乎这些极少数 JSP 不接受 taglib 引用。这是一个示例(在所有文件中都相同):

我发现如果我删除 URI 属性的“jsp/”部分,错误就会消失(但是我不能在 <c:set> 标记中使用 EL 表达式)。所以我想知道我的 Web 容器中是否有两个不同版本的 JSTL?

这是我的 web.xml(删除了所有 servlet 的底部):

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5" 
     xmlns="http://java.sun.com/xml/ns/javaee" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">

许多(数百个)JSP 可以在这个 taglib 上正常工作,而且它们位于混合的目录/位置中,所以我真的不知道为什么会发生这种情况。帮忙?

【问题讨论】:

    标签: jsp jstl


    【解决方案1】:

    很抱歉回答我自己的问题,但我发现了问题。有一个 c:set 标记读取

    <c:set var="x" var="data" />
    

    而不是

    <c:set var="x" value="data" />
    

    这很不寻常,因为页面没有将标记的行标记为错误,并且堆栈跟踪(虽然它确实提到了之前定义的 var 属性)指向 taglib 声明。仅供参考,我正在 Netbeans 8.0.2 中编程。

    Idk,如果其他人用谷歌搜索这个,我希望它有所帮助!

    【讨论】:

      猜你喜欢
      • 2022-01-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-04-05
      • 1970-01-01
      • 2011-04-30
      • 1970-01-01
      • 2012-02-20
      相关资源
      最近更新 更多