我目前正在使用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 仍然将所有黄色属性标记为"未定义的属性名称"。
我能够通过以下方式在我的依赖项目中进行标签验证:
- 将标记项目添加到"生成路径->项目->"所需项目在构建路径上"
- 在我的 JAR/tag 项目本身中,在 Java 构建路径>顺序和导出,我将 JAR 文件本身标记为已导出。