#java #spring #spring-boot #jsp
#java #весна #spring-boot #jsp
Вопрос:
У меня есть два контроллера, один из которых ведет к файлам jsp, а другой — к обычному методу. Я могу получить доступ к методу с другим контроллером, но не к методу для контроллера jsp. Я следую правильному расположению файлов и папок, как это было предложено официальным документом Spring . Я использую Visual Studio Code для разработки.
всякий раз, когда я пытаюсь просмотреть файлы jsp в своем браузере, я получаю приведенную ниже ошибку.
Ниже приведена конфигурация моего файла application.properties
server.port=2121
spring.mvc.view.prefix=/WEB-INF/view/
spring.mvc.view.suffix=.jsp
Я добавил нижеприведенную зависимость, как было предложено
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>jstl</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>
Ниже приведено изображение макета файлов и папок.
JspController.java
package com.jairini.demojairini.controllers;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
@Controller
public class JspController {
@RequestMapping(value ="/home")
public String toHomepageJsp(){
return "homepage";
}
@GetMapping("/view")
public String toIndexJsp() {
return "index";
}
}
HomeController.java
package com.jairini.demojairini.controllers;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HomeController {
@GetMapping("/")
public String home(){
return "mambo vipi";
}
}
index.jsp
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<body>
<div>
<div>
<h1>Habari gani from JSP</h1>
</div>
</div>
</body>
</html>
homepage.jsp
<!DOCTYPE html>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags"%>
<html>
<body>
<div>
<div>
<h1>Nzuri sana from JSP</h1>
</div>
</div>
</body>
</html>
Обновления
Application.java
package com.jairini.demojairini;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
Я потратил часы на множество руководств и безуспешно сообщал о вышеупомянутой ошибке. Я новичок в веб-приложении.
Комментарии:
1. Вы также следили за документом, касающимся создания war, а не jar, и имели надлежащие
SpringBootServletInitializer
расширения для начальной загрузки. Если вы не будете вести войну, это ничего не даст.2. @M.Deinum честно говоря, я этого не делал, не могли бы вы дать мне техническую подсказку по этому поводу. Также спасибо за быстрый ответ.
3. @M.Deinum спасибо. Я просмотрел документ о создании war и jar в spring, как вы предложили, и я обнаружил, что поступаю совершенно неправильно. Я провел почти день, не замечая этого . Еще раз спасибо.