在之前的博客中,关于spring boot整合freemarker和整合thymeleaf,可以说是零配置,只需要提供所需的依赖就可以很快搭建开发环境,但在spring boot中对jsp支持很少,不过也有人在用,下面我们来看看具体的实现
创建项目
创建spring boot项目,在最后的web选择Spring Web Starter即可
项目创建完毕后,添加需要的依赖,这里是整合jsp,所以需要jstl和jasper依赖
<dependency>
<groupId>org.apache.tomcat.embed</groupId>
<artifactId>tomcat-embed-jasper</artifactId>
</dependency>
<dependency>
<groupId>jstl</groupId>
<artifactId>jstl</artifactId>
<version>1.2</version>
</dependency>
这里我们需要webapp目录,由于spring boot没有提供,需要我们自己创建,创建步骤如下图:
右键项目,选择Open Module Settings
选择Web,点击图中的+,添加webapp目录
创建完毕,点击OK即可
下面我们创建一个controller类
创建controller类
package com.zhouym.jspdemo;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.GetMapping;
/**
* 〈〉
*
* @author zhouym
* @create 2019/8/7
* @since 1.0.0
*/
//返回的是一个页面,所以不用@Restcontroller注解
@Controller
public class HelloController {
@GetMapping("/query")
public String query(Model m, String name){
m.addAttribute("name",name);
return "index";
}
}
在webapp目录下新建一个jsp目录,创建一个jsp文件
<%--
Created by IntelliJ IDEA.
User: Administrator
Date: 2019/8/7
Time: 14:06
To change this template use File | Settings | File Templates.
--%>
<%@ page contentType="text/html;charset=UTF-8" language="java" %>
<html>
<head>
<title>Title</title>
</head>
<body>
<h1>${name}</h1>
</body>
</html>
这里需要配置一个视图解析类,不然是找不到webapp目录下的jsp文件的,我们创建一个视图解析配置类,需要实现WebMvcConfigurer,重写configureViewResolvers方法
package com.zhouym.jspdemo;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ViewResolverRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 〈〉
*
* @author zhouym
* @create 2019/8/7
* @since 1.0.0
*/
@Configuration
public class WebMvcConfig implements WebMvcConfigurer {
@Override
public void configureViewResolvers(ViewResolverRegistry registry) {
registry.jsp("/jsp/",".jsp");
}
}
配置前后缀名即可
以上我们整合jsp就算完成了,下面来启动看看结果,需要在URL上面输入参数