我将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。有什么方法可以解决这个问题吗?
感谢。
答案 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视为一种模板存储本身。但可以肯定的是,这不是一种非常优雅的工作方式。
如果比我更了解的人有更好的解决方案,请启发我们。上述解决方法就是:它们使您能够解决问题,以使您的项目代码正常运行。