谈到模型驱动之前,先了解一下属性驱动,属性驱动和模型都是用来解决表单值和类中的属性值对应传递的。
一、属性驱动
a) 原理:主要靠的就是ParameterInterceptor拦截器来实现表单值和action中对应属性的值传递,valueStack.setValue()方法操作值栈。
b) 形式:
i. 在action中设置属性,属性的名称和页面表单中name属性的名称一致,且必须要有set和get方法。
ii. 注意:如果属性驱动和模型驱动属性名重复,只有模型驱动能取到值,属性驱动值为null。
c) 原理图:
a) 例子:
i. jsp页面如下:
action如下:
一、模型驱动
a) 如果在jsp页面表单中的内容很多的时候,属性驱动的action类中需要写很多的属性和对应的set和get方法,影响action中主要流程的可读性,所以将和表单对应的属性放到专门的javabean中,形成实体类。
b) 模型驱动
i.Action类:
实体类: