【问题标题】:java ee jspf taglibjava ee jspf 标签库
【发布时间】:2014-09-16 20:16:31
【问题描述】:

我将 base.jspf 放在 WEB-INF/jsp/ 文件夹中,内容如下:

<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>

我还定义了带有以下内容的 WEB-INF/web.xml:

<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns="http://xmlns.jcp.org/xml/ns/javaee"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee
                             http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd"
         version="3.1">

    <display-name>Address Book Application</display-name>

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <url-pattern>*.jspf</url-pattern>
            <page-encoding>UTF-8</page-encoding>
            <scripting-invalid>false</scripting-invalid>
            <include-prelude>/WEB-INF/jsp/base.jspf</include-prelude>
            <trim-directive-whitespaces>true</trim-directive-whitespaces>
            <default-content-type>text/html</default-content-type>
        </jsp-property-group>
    </jsp-config>
</web-app>

但是当我在不同的 jsp 文件中访问 taglib 时,它总是给我错误,它既不理解 c 也不理解 fn。我使用 Eclipse Luna 作为我的 Java SE 8 IDE。有什么办法可以解决这个问题吗?

谢谢。

【问题讨论】:

  • 带有这些标签的罐子在哪里?您收到的具体错误信息是什么?
  • 它在 pom.xml 文件中,错误消息是:other.jsp 文件上的“函数 fn:length 未定义”。

标签: eclipse jsp jakarta-ee


【解决方案1】:

我在使用 Eclipse Luna 时遇到了相同的语法检查投诉(而且在似乎相同的情况下,即通过 Nick Williams 的那本优秀书籍的示例进行工作)......没有“你改变了因此,Eclipse 设置”-答案,我也没有一个聪明的答案,但到目前为止我使用的解决方法是:

1a - 通过向任何有语法错误的 jsp 文件添加一行代码,覆盖部署描述符的 jsp-config:

<%@ include file="/WEB-INF/jsp/base.jspf" %>

这解决了这个问题。唯一的缺点是,如果您反对向潜在的大量 jsp 文件添加一行额外的代码......虽然我猜您可以使用该包含行定义一个新的 JSP 模板,呃,包含 :)

1b - 更多的手动解决方法:通常快速浏览一下语法投诉会显示尚未导入或包含在有问题的 jsp 文件中的内容 - 因此您只从 base.jspf 复制相关的缺失行,在在这种情况下,我将 jspf 本身视为一种模板存储。但可以肯定的是,这对我来说并不是一种非常优雅的工作方式。

如果比我知识渊博的人有更好的解决方案,请不吝赐教。以上解决方法就是:它们使您能够解决问题以使您的项目代码正常运行。

【讨论】:

  • 感谢您的回答。最后我也做了同样的事情,但我认为只在部署描述符中声明一次以将其作为每个 jsp 文件的头文件,这超出了目的。
  • 是的,就像你说的那样,这些变通办法确实在某种程度上违背了目的。如果我偶然发现了一个合适的解决方案,我也会提供它......我认为它可能与需要将 Maven 依赖 jar 复制到例如Apache 的库......但这只是一个猜测。
  • 在此讨论中找到了一个更好的解决方法:stackoverflow.com/questions/8998484/… 其中用户 Abel ANEIROS 说:首选项 > 验证 > JSP 内容验证器(取消选中手册并构建)首选项 > 验证 > JSP 语法验证器(取消选中手册并构建) " 由于实际上 Tomcat 构建工作正常,尽管语法抱怨与验证有关,这对我来说似乎没问题......虽然我有时可能想切换这些验证设置,以捕捉“真正的”错误。
猜你喜欢
  • 2014-06-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-07-10
  • 1970-01-01
  • 2013-10-06
相关资源
最近更新 更多