Контроллер видит .html страницу, но не .jsp - PullRequest
0 голосов
/ 27 апреля 2018

Я новичок в мире весны, Итак, я работаю над примером HelloWorld, я написал следующий простой контроллер:

Controller
@RequestMapping("/welcome")
public class HelloWorldController{

   @RequestMapping(method = RequestMethod.GET)
   public ModelAndView helloWorld(){

    ModelAndView model = new ModelAndView("MVC_First_Page");
    model.addObject("msg", "hello world");

    return model;
  }

enter image description here

Я получаю следующую ошибку:

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

Ошибка при разрешении шаблона "ошибка", шаблон может отсутствовать или быть недоступным для любого из настроенных преобразователей шаблонов

Почему перехватчик не может видеть страницу MVC_First_Page.jsp? Я изменил его расширение на .html, и оно работает.

Должен ли я добавить эти атрибуты в файл application.properties?

  spring.mvc.view.prefix: 
  spring.mvc.view.suffix: .jsp

1 Ответ

0 голосов
/ 27 апреля 2018

Если вам не нужен Thymeleaf (так как вы просто экспериментируете), самый простой способ - использовать только преобразователь представления jsp.

Хороший пример вы можете найти здесь: https://hellokoding.com/spring-boot-hello-world-example-with-jsp/

По сути, в вашем коде вам нужно удалить Thymeleaf из вашего pom.xml и добавить зависимость от jasper:

    <!--<dependency>-->
        <!--<groupId>org.springframework.boot</groupId>-->
        <!--<artifactId>spring-boot-starter-thymeleaf</artifactId>-->
    <!--</dependency>-->
  <dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
    <scope>provided</scope>
  </dependency>

Затем вы должны указать суффикс вида в файле application.properties:

spring.mvc.view.suffix=.jsp

И, наконец, вам нужно переместить файл JSP в каталог src/main/webapp

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...