104.ModelDriven【模型驱动】

注意观察这个表单,如果需要取到表单中的属性值,需要在action里声明同名属性,并设置getset方法。如果action里设置了同名属性,那么在对象栈中就有这些属性,也就是为什么能够取到值的原因。

同样,开发的时候为了方便,可以将这些属性封装在一个JavaBean中,然后只要在Action中声明该JavaBean,并设置getset方法,最后在页面上将属性值修改为对象.属性名[user.username]的形式即可以访问到。

但是 ,如果不想修改页面上的属性值,我们就需要利用到这里的模型驱动。

要使用模型驱动,就必须实现模型驱动接口。而该接口需要实现的getModel()方法就替代了对象的GetSet方法  

104.ModelDriven【模型驱动】

特别注意:图中蓝色部分,之前在表单中使用user.username的时候,其实已经产生了一个对象,页面上直接用username的时候,没有产生对象,需要在Action中声明出来,否则无法获取。

 

模型驱动的作用:将JavaBean的实例压入对象栈的栈顶。

 

页面回显技术

104.ModelDriven【模型驱动】

其实就是从页面上获取值的对象的作用:即可以通过它来从页面获取对象,也可以通过它在往页面赋值。

104.ModelDriven【模型驱动】

在使用回显技术的过程中,发现一个问题:

即必须使用Struts标签才能直接获得值,否则需要用EL表达式获得.如下图1

104.ModelDriven【模型驱动】

和图2

104.ModelDriven【模型驱动】

 

相关文章: