数据回显
1、springmvc默认对pojo数据进行回显。
pojo数据传入controller方法后,springmvc自动将pojo数据放到request域,key等于pojo类型(首字母小写)
测试:
到达修改页面之前 检索数据 把数据放入request中:
提交给执行更新的handler
页面:
点击提交之前:
当提交验证错误之后 还返回到该页面:
可以看到数据回显成功
如果把页面修改一下
到达修改页面的handler
修改页面:
到达修改页面 数据当然可以正常显示 因为在到达修改页面之前把数据放在了reqeust域中 key=items
把商品的生产日期 设置为null
点击修改提交给更新handle时 因为没有验证通过 所以返回 到该页面 但是此时观察handle中的pojo
所以验证失败的时候 返回到编辑页面时 不会自动进行数据的回显 因为 key="itemsExtension" 而页面中的使用的是${items.XXX}的形式
总结一点就是 如果没有做额外的设置(下面的总结中将会提到) 框架会自动把提交给handle的pojo数据 保存在request域中 key=“类名称 首字母小写”
-----------------------------------------------
上边说了那么多 这里说一下最简单的数据回显方法:就是把数据通过model.attribute的方法 保存在request域中 key值和页面上的el表达式对应即可:
页面:
-----------------------------------------------------
@ModelAttribute的使用:
使用@ModelAttribute指定pojo回显到页面在request中的key
下面这个handle中的方法 是不能请求的 因为没有为他设置url映射路径 但是这个方法有返回值 使用@ModelAttribute注解可以把该返回值 设置到request域中 页面可以直接获取里边的数据
页面:
显示效果:
----------------------------------------------
异常处理
自定义异常类
springmvc.xml中配置上面的bean
错误页面:
访问地址:传入一个不存在的id值 使其抛出异常
------------------------------------------------