SpringRestful
springRestful 是一种框架,将增删改查写到同一个RequestMapping的映射下,通过RequestMethod的值的不同来区分增删改查:
/blog/1 HTTP GET => 得到id = 1的blog
/blog/1 HTTP DELETE => 删除 id = 1的blog
/blog/1 HTTP PUT => 更新id = 1的blog
/blog HTTP POST => 新增BLOG
RequestMapping除了定义在方法前还可以定义在类前,定义在类前,说明URLmapping都在类名目录下
SpringMVC Restful的风格
通过提交的方法不同来进行提交
在RequestMapping()内的映射地址进行统一设置,例如当我想要对学生信息进行操作时,可以将RequestMapping 内的value属性值设置为/stuManager,通过RequestMethod的属性值的不同进行操作,PUT代表修改信息,DELETE代表删除信息,GET代表查看信息,POST代表增加信息。
通常我们会通过FORM表单的形式将信息进行提交实现前端和后台的交互,FORM表单的method方法默认存在两种方式(post,get)。当我们需要以put方式提交时,就不可以使用直接设置method的值。这时候,我们需要在FORM表单内设置一个隐藏域,具体操作为<input type=“hidden” name=“_method”value=“put” >这时候需要在web.xml文件内配置一个过滤器
<filter>
<filter-name>HiddenHttpMethodFilter</filter-name>
<filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>HiddenHttpMethodFilter</filter-name>
<servlet-name>DispatcherServlet</servlet-name>
</filter-mapping>
如果需要删除操作时,添加的隐藏域的value属性应该为“delete”,同时form表单的method方法为“post”
在org.springframework.web.filter.HiddenHttpMethodFilter这个类中存在一个判断方式,method必须设置为post。
新的传值方式:
之前,我们是通过url/name=value的get方式进行传值,当我们使用restful风格进行数据操作时,这种方式显然不在适用(因为需要method的方式进行传值)这个时候,我们可以通过url/value01/value02.action的方式进行传值,
当然,在RequestMapping的设置内,需要设置为url/{name01}/{name02}的格式,同时在该RequestMapping对应的方法的参数内设置@PathVariable的注解,注解内写上name01,然后在之后写上String格式数据进行接收,例如
RequestMapping(/update/{stuNo})
public String update (@PathVariable(“stuNo”) String stuNo){};如果设置多个属性,依次设置即可,这种设计是为了满足restful风格。