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标签之后,用来描述该属性的错误信息

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,794评论 6 498
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,050评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,587评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,861评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,901评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,898评论 1 295
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,832评论 3 416
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,617评论 0 271
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,077评论 1 308
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,349评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,483评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,199评论 5 341
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,824评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,442评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,632评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,474评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,393评论 2 352

推荐阅读更多精彩内容

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