java ee jspf taglib

时间:2014-07-25 04:07:48

标签: eclipse jsp java-ee

我将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。有什么方法可以解决这个问题吗?

感谢。

1 个答案:

答案 0 :(得分:0)

我使用Eclipse Luna得到了相同的语法检查投诉(也看似相同的情况,即通过Nick Williams的优秀书籍的例子)...没有“你改变Eclipse设置因此“ - 总而言之,我也没有一个聪明的clogs答案,但到目前为止我使用的解决方法是这些:

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

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

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

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

如果比我更了解的人有更好的解决方案,请启发我们。上述解决方法就是:它们使您能够解决问题,以使您的项目代码正常运行。