SpringMVC的数据回显
数据回显:
在页面表单提交数据,我们常见的校验方式可能是JS校验,但是对于某些安全性能要求比较高的系统而言,我们也常常会在表现层进行数据校验,这时就用到了springmvc的数据校验,springmvc的数据校验使用的是hibernate提供的数据校验框架validation(但是此处和hibernate没什么关系,只不过是他提供的一个框架而已),关于validation校验机制,此处暂不赘述,本文专门分析数据回显机制。
数据回显指的是当页面提交的数据格式出错时,validation机制就会捕捉到报错信息,将报错信息渲染到页面给用户看。若不用数据回显,当报错信息渲染展示给用户的时候,提交之前我们在页面表单中填入的一堆信息就会被清空。数据回显就是要求哪怕我上次填入的数据是不合法的,但是你给我提示报错信息的时候不要将我之前填入的一大堆信息清空,而是我之前填入什么,继续给我回显到页面上来(实际应用中可能某次表单提交需要填写10项内容,但是只有一项不合法,数据回显后,我们只需要按照报错提示修改不合法的那项,而不需用全部又重新填写一遍)。
一、springmvc默认对pojo数据回显
方法1:
在自定义的Controller方法中传入参数Model model以及pojo对象(Item item),方法体内编写关键代码model.addAttribute("item", item)。
在jsp页面关键代码如:<input name="itemName" value="${item.itemName}"/>。
注意:controller方法中model.addAttribute(key,value)的key要与jsp页面中value="${item.itemName}"的红色位置保持一致。
Controller方法代码:
JSP页面代码:
注意上面代码截图圈黄色两处保持一致。
方法2:
@ModelAttribute注解方法。
在Controller方法括号内添加注解@ModelAttribute("item"),注意注解参数名称与jsp页面保持一致。此种方法在自定义的Controller方法中无需传入参数Model model,也无需添加代码model.addAttribute(key,value)。
Controller方法代码:
JSP页面代码:
注意上面两张截图中圈红的item名称保持一致。
其余方法总结后续追加......