1 spring mvc中的ModelAndView的级别是session,不是request
2 spring mvc常用的Controller有2个,AbstractController,simpleFormController。其中simpleFormController
它的处理流程是这样的:
get请求来到时,这样处理:
a) 请求传递给一个controller对象
b) 调用formBackingObject()方法,创建一个command对象的实例。
c) 调用initBinder(),注册需要的类型转换器
d) 调用showForm()方法,返回准备呈现给用户的视图
e) 调用referenceData()方法,准备给用户显示相关的数据。如用户登录需要选择的年度信息
f) 返回formView指定的视图
post请求来到时,这样处理:
a) 调用formBackingObject()方法,创建一个command对象的实例。
b) 将请求传来的参数写入command对象
c) 如果设置为要求验证,则调用validator类进行数据验证
d) 调用onBindAndValidate()方法,该方法允许自定义数据绑定和校验处理
e) 调用onSubmit()方法,进行业务逻辑处理
在实际使用中,只要关注2个方法就行了,referenceData(),onSubmit().一个是get请求过来时调用的,一个是post请求过来时调用的。在做增加,修改时最好继承这个Controller,因为做增加功能时,可能需要一些初始条件,可以直接在referenceData()这个方法中得到并传给前台,在增加提交时在onSubmit()这个方法中插入数据。
3 其中AbstractController就比较简单,用于简单的查询有2个方法,其中经常用到的是handleRequestInternal(req,res)