REST风格的增删改查(1)

一、RESTFUL风格的CRUD(增删改查)案例
1.需求:
①显示所有员工信息:URI:emps,请求方式:GET
②添加员工所有信息:显示添加页面:URI:emp,请求方式:GET,
添加员工信息:URI:emp,请求方式:POST
③删除员工信息:URI:emp/{id},请求方式DELETE
④修改操作:lastName不可修改
显示修改页面:URI:emp/{id}
请求方式:GET
显示效果:回显表单
修改员工信息:URI:emp
请求方式:PUT
显示效果:修改完成,重定向到list页面
2.相关的类
实体类:Employee、Department
Handler:EmployeeHandler
Dao:EmployeeDao、DepartmentDao
3.相关页面
list.jsp
input.jsp
edit.jsp

注意:控制器跳转时:当请求到这个方法,把查到员工的集合放到Map中,同时自动的放入到请求域中,跳转到目标页面之后就可以直接获取
在CRUD操作中,修改操作要注意:
1.首先因为添加和修改表单样式差不多,所以使用了同一个页面input.jsp,因此需要使用ID来区分不同的操作,
当有ID传到input.jsp时,说明是修改操作,没有ID时说明是添加操作。
2.修改操作,首先规定姓名不可更改,所以在修改时,使用if取消掉name的输入框,使用改变
请求方式,提交到Handler类中,在Handler类分两步完成修改操作,其一:跳转到修改页面input.jsp,其中跳转到input.jsp页面需要回显,
所以点击修改时需要传一个参数ID,使用该参数查询到一个对象,并把该对象放入到map中同时也会放入到域对象中,其二:提交修改后的数据
该操作使用@ModelAttribute注解,由于提交的页面input.jsp中会提交一个隐藏域ID,并改变请求方式,
所以该注解会在从数据库中根据ID找到一个对象,由于@ModelAttribute注解标注的方法会在目标方法之前执行,所以目标方法执行employeeDao.save(employee);
操作时,对象employee是一个:从数据库中取出的,并把表单提交的参数值赋到其中之后的对象

二、数据校验和格式化
格式化:
1.格式化日期:由字符串转化成yyyy-MM-dd
在实体类上使用@DateTimeFormat(pattern=”yyyy-MM-dd”)标注属性private Date birth;
在Spring配置文件中配置<mvc:annotation-driven></mvc:annotation-driven>

2.格式化金额:使用注解@NumberFormat(pattern=”#,###,###.#”)标注在属性private Float salary;
校验:
1.使用JSR303验证标准
①加入hibernate validator验证框架的jar包
②在SpringMVC配置文件中添加:<mvc:annotation-driver>
③在Bean的属性上添加对应的注解
④在目标方法Bean类型的前面添加@Valid注解(在Controller类控制跳转的handler中,)
注意:需校验的Bean对象和其绑定结果对象/错误对象是成对出现的,他们之间不允许声其他入参:
(@Valid Employee employee, BindingResult result)

原文地址:https://www.cnblogs.com/tengpengfei/p/10453967.html