以下就是SpringBoot搭建SSM框架项目,集成使用jsp(超详细)的全部内容。
看完如果对你有帮助,感谢点赞支持!
文章目录
1.创建项目,选择Spring Initializr创建一个Spring Boot类型的项目
2.填写项目信息
可以看到如下界面,注意只需要手动的输入项目名称即可,包结构可以变也可以不变,然后点击“next”即可
3.勾选项目依赖
先选中最左边的Web,表示这是web项目;再选择SQL下的MYSQL和Mybatis,等于自动添加SpringBoot相关的starter依赖包
4.选择项目名称和项目代码保存目录
5.添加上下文目录
首先在与java、resource目录同级目录下创建webapp目录,用于存放jsp等前端资源,在webapp目录下创建jsp与WEB-INF文件夹,jsp目录用于存放jsp文件,WEB-INF目录用于存放web.xml等配置文件
6.项目创建好后,如果IDEA没有标记,则手工把java、resources等目录标记为Maven规范的目录,如下图:
7.添加依赖
注意:
1.在引用依赖的时候,有一个依赖的scope是需要被注释掉的:org.apache.tomcat.embed
,它的scope不需要,如果你没有注释的话,后面访问jsp的时候就会报404
2.SpringBoot-starter-web内嵌的Tomcat无法解析jsp,需要额外添加类库(Jasper)
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<!-- web项目依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
</dependency>
<!--注意:spring boot对jsp的支持不是很好,在使用spring boot自带tomcat的同时,还需要引入另外的一个tomcat,以来如下所示,且scope属性需要被注释掉 -->
<!--注掉的原因是:maven默认scope是compile,表示打包时会把此包打入jar包中,而provided表示打包时不会打如jar包中,因为它默认是jar包中会提供,说白了就是你标注了provided就不会被打入jar包中,项目跑起来就肯定会有问题了 2019/12/4 -->
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
<!--<scope>provided</scope> 注意,这个scope需要被注释掉-->
</dependency>
<!-- jsp标签库 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>jstl</artifactId>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
8.添加上下文目录
效果如下:
9.指定SpringBoot的启动目录
添加上$ContentRoot$
10.设置application.properties
#页面默认前缀目录
spring.mvc.view.prefix=/WEB-INF/jsp/
#页面默认后缀目录
spring.mvc.view.suffix=.jsp
server.port=8888
11.测试是否可行
我们先编写一个controller类:
testController
package com.example.springbootjsp.controller;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
@Controller
public class TestController {
@GetMapping("getname")
public String getName(Model model){
model.addAttribute("name","keafmd");
return "name";
}
@GetMapping("getage")
public String getAge(Model model){
model.addAttribute("age",18);
return "age";
}
}
在jsp目录下创建name.jsp和age.jsp
name.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>name</h1>
${name}
</body>
</html>
age.jsp:
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>age</h1>
${age}
</body>
</html>
----------启动程序----------
访问:http://127.0.0.1:8888/getAge
访问:http://127.0.0.1:8888/getName