Приложение JSP для весенней загрузки не настроено - PullRequest
0 голосов
/ 28 мая 2018

Я пытался сделать JSP-приложение с весенней загрузкой.Итак, я перешел на http://start.spring.io/ и выбрал веб-модуль и приложение загружается в локальную папку.

После импорта проекта в Eclipse я сделал запись в application.properties как

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

Затем я создал один контроллер как

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String hellopage() {
        return "ankit";
    }
}

Наконец, я добавил один jsp в папку WEB-INF / jsp как ankit.jsp

После запуска приложения,Я нажимаю URL-адрес http://localhost:8080/hello и получаю ответ как Whitelabel Error Page

Пока я трачу много часов, чтобы вернуть jsp с пружинного загрузчика mvc безуспешно,

Я попытался вернуть ответ от контроллера как REST SERVICE .Итак, я сделал только несколько изменений

1) Замените @Controller на @ RestController

2) удалите запись из appliation.properties

Затем я запускаю основной класс и получаюуспешный ответ при нажатии на URL http://localhost:8080/hello

Итак, мой вопрос заключается в том, почему так сложно настроить загрузку пружины для возврата ответа на страницу jsp.

РЕДАКТИРОВАТЬ:

Первоначально мое приложение запускалось со следующим классом:

@SpringBootApplication
public class DemoApplication {

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

Но после нескольких предложений людей я изменил его на следующий

@SpringBootApplication
public class DemoApplication extends SpringBootServletInitializer{

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) {

        return builder.sources(DemoApplication.class);
    }

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

Однако результаттакой же.После ссылки на эту ссылку я переименовал папку WEB-INF в view .При нажатии на / hello url мой jsp загружается на мой локальный компьютер.

Итак, рендеринг jsp с контроллера снова загадка.

Мне нужно либо:

  1. сделал приложение для отдыха вместо веб-приложения
  2. переключился на шаблонизатор thymeleaf вместо jsp
  3. провел дополнительные исследования в этом рендеринге jsp

Спасибо заваши ответы

Ответы [ 2 ]

0 голосов
/ 29 мая 2018

Согласно вашему описанию, ваш application.properties в порядке с

spring.mvc.view.prefix=/WEB-INF/jsp/
spring.mvc.view.suffix=.jsp

Ваш Controller класс в порядке с

@Controller
public class HelloController {

    @RequestMapping("/hello")
    public String hellopage() {
        return "ankit";
    }
}

Ваше основное приложение в порядке с

@SpringBootApplication
public class DemoApplication {

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

Убедитесь, что вы создали папку webapp внутри main.WEB-INF внутри webappjsp папка внутри WEB-INFankit.jsp внутри папки jsp.Еще одна вещь, добавить эти зависимости в ваш pom.xml

<dependency>
    <groupId>org.apache.tomcat.embed</groupId>
    <artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
    <groupId>javax.servlet</groupId>
    <artifactId>jstl</artifactId>
</dependency>
0 голосов
/ 28 мая 2018

Вещи, которые вы должны проверить при использовании Spring boot с JSP:

  • Убедитесь, что у вас есть подкласс SpringBootServletInitializer в вашем проекте.Это должно выглядеть так:

    @SpringBootApplication
    

    открытый класс Приложение extends SpringBootServletInitializer {

    @Override
    protected SpringApplicationBuilder configure(SpringApplicationBuilder application) {
        return application.sources(Application.class);
    }
    
    public static void main(String[] args) throws Exception {
        SpringApplication.run(Application.class, args);
    }
    

    }

  • Убедитесь, что используется «война»"package

  • Убедитесь, что в вашем файле pom.xml объявлена ​​следующая предоставленная зависимость: spring-boot-starter-tomcat

Если все ещене работает, попробуйте его с внешним сервером вместо встроенного tomcat.

Тем не менее, с шаблонами Thymeleaf или Freemarker будет намного легче иметь дело.Thymeleaf используется в документации Spring, поэтому вы можете проверить это.

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