2016-03-13 1 views
1

В eclipse я создал новый динамический веб-проект. После преобразования в maven я добавил сервер tomcat v8 для развертывания. Но с самого начала просто можно отобразить простой html-код. Кажется, что весь синтаксис jsp не интерпретируется и игнорируется.Tomcat не интерпретирует синтаксис 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" %> 

Отображается весь jsp-файл с простыми html-тегами. Любые предложения, что не хватает?

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> 

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> 
+0

Почему вы карту '* .jsp' до весны' DispatcherServlet'? Не могли бы вы попытаться удалить строку ' * .jsp' from '<сервлет-сопоставление><сервлет-имя> веб-сайт' блок? –

+0

Удивительный, он работает сейчас. – Bude10

ответ

1

Вы явно отображение *.jsp в SpringFramework DispatcherServlet. Я не знаю, почему вы это написали, но это причина того, что происходит: файлы jsp обычно интерпретируются сервером по умолчанию tomcat, который имеет самый низкий приоритет. Если какой-либо другой сервлет связывает их, этот другой сервлет получит их.

Исправление просто использовать:

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

 Смежные вопросы

  • Нет связанных вопросов^_^