SpringMVC2实现与CRUD整合

一SpringMVC实现与CRUD整合

表单的name要和属性一致,这样SpringMVC才可以完成自动封装(将上传的内容封装成一个对象),public String update(Product product){}表单里的name会对product中对应的属性进行赋值

传递参数有两种:1问号传参:需要使用问号来拼接参数,如果传递多个值,需要使用&来拼接,不会改变路径级别

2路径传参:统配规则(传什么就可以进入什么页面)@GetMapping("/{path}"),如果同时统配和具体的url(@GetMapping("/a"))都满足,则以更精确的url来处理该请求。

可以直接指定变量的数据类型,而无需再做数据类型的转换,也可以实现传入多个参数,/{abc}/{xyz},方法里面可以使用 public String deleteProduct(@PathVariable int abc,@PathVariable String xyz)方式来接收。注意路径传参会多一级目录,要注意访问路径

箭头内容要一致

1    RequestMapping 可以通过method来区分不同的请求方式    

@RequestMapping(value = “/update”, method = RequestMethod.POST)代表处理post请求

@RequestMapping(value = “/update”, method = RequestMethod.GET)代表处理get请求

2   GETMapping,可以简化代码,专门用来处理get请求(4.3以后的Spring版本可用)

3   PostMapping,可以简化代码,专门用来处理post请求(4.3以后的Spring版本可用)可以与GetMapping的参数一样,因为请求方式不一样

4   PathVariable路径传参的注解,可以实现路径传参。

二    MVC校验

1写一个配置文件(前面的message可以变,但后面的zh_CN_properties是固定格式)properties内容格式是key=value,我的idea如果把文件放在WEB-INF下会一直报错,找不到文件,只能把文件放在resources;

messages_zh_CN_properties(中文)

messages_en_US_properties(英文)

2在mvc.xml文件中配置如下,id必须是messageSource,SpringMVC会根据id所对应的bean对象来读取配置文件

property内的name必须是basename,用于读取文件,因为我把properties配置文件放在resources;所以value是messages(文件名)


3实现Validator接口,实现里面的两个方法supports(用来对于哪个类实现校验)和validate(完成真正的校验,一定是满足了supports方法之后才会进入该方法来进行校验),validate有两个参数,前者是需要检验的对象,后者是存储的错误信息,

rejectValue("字段名",properties配置文件的key值)用于合法性检验,两个参数

rejectIfEmpty(errors,"字段名",properties配置文件的key值),用于非空检验,三个参数

4    书写Controller类(校验)

该类return的都代表最终的展示页面,如果带有redirect,则代表重定向

第一个GetMapping("/saveEmp")代表以get方式请求该资源,里面写了一个ModelAndView对象,传了三个参数,第一个是viewname,视图名,拼接上前后缀可以得到真正的物理视图,来打开该物理视图所对应的页面,第二个参数为modelname,模型名,相当于给模型起名字,这里要注意,该模型名意识要被叫做bean对象的小写形式Product(product),第三个参数为modelObject,模型对象,将该对象通过模型名传递给第一个参数viewname所对应的页面,在那个页面中可以渲染该数据

modelName必须是bean对象的小写,commandName的值也必须与其一样

第二个PostMapping("/saveEmp"),该注解的意思是页面上的表单通过post请求将saveEmp的请求来在这里进行处理。该方法包含有三个参数,第一个是Product对象,可以自动封装表单中的属性为Bean对象,第二个参数为BindingResult对象,该对象我们通过源码可以发现是Spring中的Errors的子接口,可以用来接收并存储错误信息,这个对象可以接收从PorductValidate校验类中产生的错误信息,存储以交给错误页面的f:errors标签来展示错误信息,第三个参数是Model对象,可以用来储存对象,目的是可以使的bean对象的错误数据进行回显

addAttribute的第一个参数必须是bean对象的小写,commandName的值也必须与其一样

5    书写页面

1    需要添加Spring MVC的form标签;5.0版本的spring没有使用commandName了,用modelAttribute替代,commandName换成modelAttribute,其他的都不变,值依旧是bean对象的小写;

1    f:input类似于html中的input标签,但是将name换成了path,代表的是属性名

2    f:errors,这个标签可以用来展示如果当前表单有错误信息时,可以在对应的域之上进行回显,一般都被放在对应的f:input标签之后,用来描述该属性的错误信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今晚在学习网络课程,来不及写日记了,明天再写。
    王贞臻阅读 656评论 2 1
  • 有人说我是爱而不能,恨又不起。还有人说我是已然爱上,无所遁形。我却希望给渴望人类情感的自己一份祝福^_^:得不到的...
    sandy呓语阅读 3,959评论 0 0
  • 当年高考第一志愿是健康管理专业。当时报考并没有迷茫,对这个专业也是“一见钟情”。我也不知从什么时候起决定自己一定要...
    冬来枝白阅读 3,388评论 0 0
  • 我在小学的时候曾经疯狂的迷恋街机游戏,那些一关一关过的《三国志》、《名将》《街头霸王》等,觉得那就是我生命的全部,...
    尘世知行者阅读 3,034评论 0 0
  • 终于快放假了,2020年,希望更幸福。本来已经很满足,就有更多的奢望。
    华客鲁俊阅读 884评论 1 0