Struts2基础(五):Struts2的属性驱动和模型驱动

属性驱动和模型驱动的作用:获取表单元素,将表单中的参数值自动赋到对应action中

1.属性驱动:实质上就是一个参数拦截器

           (1).原理:前台jsp发送数据,ParameterInterceptor拦截器先将这些参数封装成TreeMap对象,再遍历这个TreeMap,将map里的内容放到值栈的对象栈中。可以通过valueStack.setValue(entry.getKey(),entry.getValue()[0])给对象栈中的属性赋值

           (2).注意点:action中的属性的名称一定要和页面上name保持一致

                               action中的属性一定要有get()、set()方法

2.模型驱动:实质上是模型驱动拦截器+参数拦截器

           (1).原理:前台jsp发送数据,ModelDriverInterceptor会检测要转化的那个action是否实现ModelDriver类,如果实现了,getModel()来返回提前定好的对象,该对象中提前定好了所有的属性(相当于web中的bean对象)。将这个没有数据的对象放到值栈中。然后同属性驱动一样,利用ParameterInterceptor进行相应赋值等处理。

           (2).注意点:action必须要implements ModelDriver

                               action必须要提前写好一个返回对象,这个对象可以用getModel来得到,相当于web中的bean对象

                               再运用属性驱动赋值

                               

猜你喜欢

转载自blog.csdn.net/qq_40594696/article/details/86600097