的新手,尝试使用 Spring boot 编写 MVC 应用程序。控制器正在获得控制权,但未显示 JSP。我尝试将 JSP 放在 WebApp 文件夹中,Webapp/Web-Inf 文件夹它不起作用。下面是代码。
应用程序属性:
server.port=8099
spring.mvc.view.prefix: /webapp/
spring.mvc.view.suffix: .jsp
登录控制器:
@Controller
public class LoginController {
@RequestMapping("/login")
public ModelAndView login(Model model) {
System.out.println("*********************************");
ModelAndView modelAndView = new ModelAndView();
modelAndView.setViewName("welcome");
return modelAndView;
}
}
项目结构
尝试更改
<packaging>jar</packaging>
自
<packaging>war</packaging>
在庞.xml
像下面这样更改前缀,
spring.mvc.view.prefix: /WEB-INF/jsp/
并将welcome.jsp
移动到 jsp
文件夹中,根据您的项目结构,它位于/WEB-INF/文件夹中,与 JSP 文件夹相等。
您的 JSP 页面位于 WEB-INF
中,因此您需要将prefix
更改为以下内容,以便它可以查看 JSP:
spring.mvc.view.prefix: /WEB-INF/jsp/
,然后将welcome.jsp
移动到jsp
文件夹。
我们需要添加嵌入式 jasper 依赖项
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<scope>provided</scope>
</dependency>
在 Pom 中.xml并且这种依赖关系在 Spring 初始化器生成的项目中不存在
将spring.mvc.view.prefix: /webapp/
更改为spring.mvc.view.prefix: /webapp/jsp/
,您就完成了!末尾的"/"非常重要。您当然需要将碧玉依赖项添加到您的pom中:
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!-- scope must be as per default compile -->
<!-- <scope>compile</scope>-->
</dependency>