前言:
在做一个springmvc的demo中浏览器报了一下错误,我定义到POJO寻找错误
一.初识
1.什么是POJO
POJO(Plain Ordinary Java Object)简单的Java对象
实际就是普通JavaBeans,使用POJO名称是为了避免和EJB(企业Java Beans)混淆起来, 而且简称比较直接. 其中有一些属性及其getter setter方法的类,有时可以作为value object或dto(Data Transform Object)来使用.当然,如果你有一个简单的运算属性也是可以的,但不允许有业务方法,也不能携带有connection之类的方法。
在此文章中,我将用POJO来获取前端数据,传入Controller方法,实现数据库操作
二.POJO实现
2.实现POJO
相比@RequestParam注解以及ServletAPI的request.getParameter方法。以POJO方式实现参数在面对获取多个数据的情况下,它显得更加简单。
想要实现,首先应有一个类加上你的set方法以及对应的构造器, 其次在控制器方法的形参位置设置一个实体类类型的形参。若此时若浏览器传输的请求参数的参数名和实体类中的属性名一致,那么请求参数就会为此属性赋值
类:
Controller方法
@RequestMapping(value = "/addCat",method = RequestMethod.POST)
//JGSCat实体类
public String addCat(JGSCat jgsCat){
//添加数据的方法
boolean add = jgsCatService.add(jgsCat);
if (add){
return "index";
}
return "add";
}
HTML页面
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.thymeleaf.org">
<head>
<meta charset="UTF-8">
<title>添加界面</title>
</head>
<body>
<table>
<form th:action="@{/addCat}" method="post">
name:<input type="text" name="catName"><br>
gender:<input type="radio" name="gender" value="1">male
<input type="radio" name="gender" value="0">female<br>
peculiarity:<input type="text" name="peculiarity"><br>
status:<input type="text" name="status"><br>
place:<input type="text" name="place"><br>
<input type="submit" value="add"/><br>
</table>
</body>
</html>
三:bug原因
出现这个bug的原因是因为没有在类中设置set方法,上图是已经修改过的。
POJO的实现原理简单一点来说就是请求参数名若与类属性名一致的话,就会调用set方法去给属性赋值