上一篇文章介绍了使用JdbcTemplate完成对数据库的增删改查,使用了postman工具测试了功能是否实现,这一篇介绍如何调用springboot的后台接口,将数据真正展示出来。这里使用jsp进行页面展示,虽然springboot强烈不推荐使用jsp,而是推荐使用Themeleaf,但是很多人习惯使用jsp(包括我),这里先使用jsp做springboot的入门介绍,也可以更好的理解。
还是继续在第二篇的基础上做,代码稍加修改即可,添加几处依赖,如下:
org.apache.tomcat.embed
tomcat-embed-jasper
provided
javax.servlet
jstl
runtime
javax.servlet
javax.servlet-api
全部查询及展示的接口
@RequestMapping("/list")
public ModelAndView itemsList() {
String sql = "select * from items";
List
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
springboot学习
这是标题:${item.title}
这是作者:${item.name}
这是内容:${item.detail}
接着,实现新增的功能,后台接口如下:
/**
* @return
* 跳转到新增接界面
*/
@RequestMapping("/toAdd")
public ModelAndView toAdd() {
ModelAndView mav = new ModelAndView("/WEB-INF/views/add.jsp");
return mav;
}
/**
* 新增数据
* @param items
* @return
*/
@RequestMapping("/add")
public @ResponseBody boolean addItems(Items items) {
String sql = "insert into items (title,name,detail) value (?,?,?)";
Object args[] = {items.getTitle(),items.getName(),items.getDetail()};
int temp = jdbcTemplate.update(sql, args);
if(temp > 0) {
return true;
}
return false;
}
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/core" prefix="c"%>
<%
String path = request.getContextPath();
%>
springboot学习
在前台输入标题,姓名及内容点击提交,会提示新建成功,数据成功被写入数据库,对于修改,删除基本和新增代码基本无差别,这里就不啰嗦了。
这里做一个解释:
在使用@RestController注解时,控制器类中的方法无法直接返回jsp页面,视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
比如:这里需要返回items.jsp页面,return "items.jsp"时他直接将items.jsp作为数据返回。
因为@RestController注解相当于@ResponseBody + @Controller合在一起的作用,所以如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行,可以利用ModelAndView返回jsp视图。
ModelAndView mav = new ModelAndView("/WEB-INF/views/items.jsp");
这样配置视图的路径可能有点麻烦,很多时候我们jsp都是放在某个文件夹下的,可以在application.properties中进行统一的配置,如下:
spring.mvc.view.prefix=/WEB-INF/views/
spring.mvc.view.suffix=.jsp