2016-07-20 7 views
0

Привет, я пытаюсь объединить JSP и HTML из тимелеафа в одном проекте, к сожалению, я застрял. Я не могу правильно настроить взаимодействие с TemplateResolver и InternalResourceViewResolver. вот мой код приложения:JSP + thymeleaf with springboot

Application.java

@SpringBootApplication 
@ImportResource("classpath:config.xml") 
public class Application { 



    public static void main(String[] args) { 
     SpringApplication.run(Application.class, args); 
    } 
} 

config.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<beans xmlns="http://www.springframework.org/schema/beans" 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:schemaLocation=" 
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd"> 

<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix" value="/webapp/WEB-INF/views/" /> 
    <property name="suffix" value=".jsp" /> 
    <property name="viewNames" value="jsp/*"></property> 
    <property name="order" value="1"></property> 
</bean> 

<!-- Thymeleaf --> 
<bean class="org.thymeleaf.spring4.view.ThymeleafViewResolver"> 
    <property name="templateEngine" ref="templateEngine" /> 
    <property name="viewNames" value="templates/*"></property> 
    <property name="order" value="0"></property> 
</bean> 

<bean id="templateResolver" 
    class="org.thymeleaf.templateresolver.ServletContextTemplateResolver"> 
    <property name="prefix" value="/templates" /> 
    <property name="templateMode" value="HTML5" /> 
    <property name="suffix" value=".html" /> 
</bean> 

<bean id="templateEngine" class="org.thymeleaf.spring4.SpringTemplateEngine"> 
    <property name="templateResolver" ref="templateResolver" /> 
</bean> 
</beans> 

это структура моего проекта: https://s31.postimg.org/oti25mxp7/springbootproject.png

когда я спросить контроллер для jsp или html-файла i получил

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "personview", template might not exist or might not be accessible by any of the configured Template Resolvers 

org.thymeleaf.exceptions.TemplateInputException: Error resolving template "hello", template might not exist or might not be accessible by any of the configured Template Resolvers 

мой pom.xml (только зависимостей)

<dependencies> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-web</artifactId> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-thymeleaf --> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-thymeleaf</artifactId> 
     </dependency> 
     <!-- https://mvnrepository.com/artifact/org.hibernate/hibernate-core --> 
     <dependency> 
      <groupId>javax.servlet</groupId> 
      <artifactId>jstl</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.tomcat.embed</groupId> 
      <artifactId>tomcat-embed-jasper</artifactId> 
      <scope>provided</scope> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-test</artifactId> 
      <scope>test</scope> 
     </dependency> 
     <dependency> 
      <groupId>mysql</groupId> 
      <artifactId>mysql-connector-java</artifactId> 
      <version>5.1.36</version> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework.boot</groupId> 
      <artifactId>spring-boot-starter-data-jpa</artifactId> 
     </dependency> 
     <dependency> 
      <groupId>org.springframework</groupId> 
      <artifactId>spring-orm</artifactId> 
     </dependency> 
    </dependencies> 
+0

Вы можете также разместить свой код контроллера? – bphilipnyc

ответ

0

Во-первых, попробуйте переместить шаблоны в каталог WEB-INF.

Чтобы включить JSP решения об изменении декларации

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 

в

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
+0

сделал, как вы сказали, но никакого эффекта, может быть, есть что-то с моим classpath? – filemonczyk

+1

Попробуйте изменить «/ webapp/WEB-INF/views /» в InternalResourceViewResolver в/WEB-INF/views /. Также перемещайте шаблоны в/WEB-INF/templates/и измените префикс templateResolver на/WEB-INF/шаблоны – mdziob

+0

Помог ли вам этот ответ? – mdziob

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