Eclipse将无法识别和验证JSP标记目录属性

时间:2012-06-05 19:51:25

标签: eclipse jsp taglib

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

我正在用jsp视图编写java web应用程序。

为了更好地重用代码,我在*.tag文件夹中创建了一些标记 - WEB-INF\tags文件

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的标签?

2 个答案:

答案 0 :(得分:0)

我使用jsps(和标签)的XML版本 - 所有teh 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验证效果很好。

答案 1 :(得分:0)

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

我能够通过以下方式让我的依赖项目中的标签验证工作:

  1. 将标签项目添加到构建路径 - &gt;项目 - &gt;“所需项目 在构建路径“
  2. 在我的JAR / tag项目本身中,在Java build path-&gt; Order and export,我将JAR文件标记为已导出。