abstract class AbstractController implements Controller{}
abstract class BaseCommandController extends AbastractController{}
abstract class AbstractFormController extends BaseCommandController{}
class SimpleFormController extends AbstractFormController{}
解析AbstractFormController
当get请求来到时:
1,请求传递给一个controller对象
2,调用formBackingObject()方法,创建一个command对象的实例
3,调用initBinder(),注册需要的类型转换器
4,调用showForm()方法,返回准备呈现给用户的视图
5,调用referenceData()方法,准备给用户显示相关的数据,如用户登录需要选择的年度信息
6,返回fromView指定的视图
当post请求到来时:
1,调用formBackingObject()方法,创建一个command对象的实例。
2,将请求传来的参数写入command对象
3,如果设置为要求验证,则调用validator类进行数据验证
4,调用onBindAndValidate()方法,该方法允许自定义数据绑定和校验处理
5,调用onSubmit()方法,进行业务逻辑处理
SimpleFormController的属性介绍:
1,sessionForm:设定form的httpSession是否可用。如果你想让commandClass绑定到spring标签,那么必须将它的值设置为true。
2,commandClass:用来绑定到form的Bean Class。
3,commandName:用来在spring标签中引用上面的commandClass。默认值是command
4,validator:这个类实现了form的validation。
5,formView:表单所在的jsp页面。
6,successView:在成功提交之后显示结果的jsp页面