Eclipse 不会重新识别和验证 JSP 标记目录属性



我目前正在使用Spring Source Tools 2.9.1 - 但是我在标准Eclipse J2EE发行版中遇到了同样的问题。

我正在编写带有jsp视图的java Web应用程序。

为了更好地重用代码,我创建了一些标签 - *.tag文件夹中WEB-INFtags文件

enum.tag文件示例:

<jsp:root version="2.0" 
    xmlns:form="http://www.springframework.org/tags/form" 
    xmlns:jsp="http://java.sun.com/JSP/Page"
    xmlns:spring="http://www.springframework.org/tags"
    xmlns:tags="urn:jsptagdir:/WEB-INF/tags"
    xmlns:fmt="http://java.sun.com/jsp/jstl/fmt"
    xmlns:c="http://java.sun.com/jsp/jstl/core">
    <jsp:directive.tag pageEncoding="UTF-8" />
    <jsp:directive.attribute name="value" required="true" rtexprvalue="true" type="Object" />
    <jsp:directive.attribute name="cssClass" required="false" rtexprvalue="true" />
    <span class="enum ${value.cssClass} ${cssClass}"> 
        <span class="message"> 
            <spring:message code="${value.name}" />
        </span>
    </span>
</jsp:root>

如果我在我的 jsp 中使用此标签,则验证器会重新识别该标签,但标签属性不会。

所以我收到这行 jsp 的警告

<tags:enum value="${t.state}" />

警告:

Undefined attribute name "value"

标记 Nemaspace 初始化为:

xmlns:tags="urn:jsptagdir:/WEB-INF/tags

如何设置 eclipse 以正确验证 tagdir 的标签?

我使用 XML 版本的 jsps(和标签) - 所有 fiels 都是有效的 XML 文档,它使用的语法如下

<jsp:directive.tag pageEncoding="UTF-8" body-content="scriptless" />
<jsp:directive.attribute name="caption" required="false" rtexprvalue="true" />
<jsp:directive.attribute name="labelInfix" required="false" rtexprvalue="true" />

我现在意识到并检查了我需要使用 tagx 扩展(与 jspx 一起)。通过此更改,Eclispe 验证效果很好。

是的,在撰写本文时,使用 Eclipse Luna,Eclipse 对 JAR 中的自定义标签(Oracle 称为"打包标签文件")的 JSP 标签验证仍然很糟糕。我有两个Java项目,一个包含JAR和TLD,其中包含我的.tags和TLD(TLD具有元素)。我设法获得了 JSP 标签验证,例如 <t:customTag />工作,但 Eclipse 仍然将所有黄色属性标记为"未定义的属性名称"。

我能够通过以下方式在我的依赖项目中进行标签验证:

  1. 将标记项目添加到"生成路径->项目->"所需项目在构建路径上"
  2. 在我的 JAR/tag 项目本身中,在 Java 构建路径>顺序和导出,我将 JAR 文件本身标记为已导出。

最新更新