Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Tomcat没有';不解释jsp语法_Java_Spring_Maven_Jsp_Tomcat8 - Fatal编程技术网

Java Tomcat没有';不解释jsp语法

Java Tomcat没有';不解释jsp语法,java,spring,maven,jsp,tomcat8,Java,Spring,Maven,Jsp,Tomcat8,在eclipse中,我创建了一个新的动态web项目。转换到maven后,我添加了一个TomcatV8服务器用于部署。但是从一开始就可以显示简单的html代码。似乎所有jsp语法都没有被解释和忽略 Home.jsp <html> <body> <jsp:include page="navigation.jsp"></jsp:include> <c:forEach begin="1" end="3"

在eclipse中,我创建了一个新的动态web项目。转换到maven后,我添加了一个TomcatV8服务器用于部署。但是从一开始就可以显示简单的html代码。似乎所有jsp语法都没有被解释和忽略

Home.jsp

<html>
    <body>
        <jsp:include page="navigation.jsp"></jsp:include>   
        <c:forEach begin="1" end="3" var="Test">
            <c:out value="${val}"/>
        </c:forEach>
    </body>
</html>

Navigation.jsp

<nav>
    <div>Navigation</div>
</nav>

航行
这在浏览器中不显示任何内容。添加jsp指令后

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

将显示带有普通html标记的整个jsp文件。 有什么建议吗?缺少什么

POM.xml

<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
    <version>1.2</version>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>servlet-api</artifactId>
    <version>2.5</version>
    <scope>provided</scope>
</dependency>

javax.servlet
jstl
1.2
javax.servlet
servlet api
2.5
假如
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">

  <servlet>
        <servlet-name>website</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>/WEB-INF/website.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>website</servlet-name>
        <url-pattern>/</url-pattern>
        <url-pattern>*.jsp</url-pattern>
    </servlet-mapping>

    <jsp-config>
        <jsp-property-group>
            <url-pattern>*.jsp</url-pattern>
            <scripting-invalid>true</scripting-invalid>
        </jsp-property-group>
    </jsp-config>

</web-app>

网站
org.springframework.web.servlet.DispatcherServlet
上下文配置位置
/WEB-INF/website.xml
1.
网站
/
*.jsp
*.jsp
真的

您正在将
*.jsp
明确映射到SpringFramework
DispatcherServlet
。我不知道您为什么会这样写,但这就是发生这种情况的原因:jsp文件通常由具有最低优先级的tomcat默认服务器进行解释。如果任何其他servlet绑定它们,那么这个其他servlet将获得它们

解决方法是只使用:

<servlet-mapping>
    <servlet-name>website</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

网站
/

为什么要将
*.jsp
映射到spring
DispatcherServlet
?你能试着从
网站
bloc中删除
*.jsp
行吗?太棒了,它现在可以工作了。