注意观察这个表单,如果需要取到表单中的属性值,需要在action里声明同名属性,并设置get和set方法。如果action里设置了同名属性,那么在对象栈中就有这些属性,也就是为什么能够取到值的原因。
同样,开发的时候为了方便,可以将这些属性封装在一个JavaBean中,然后只要在Action中声明该JavaBean,并设置get和set方法,最后在页面上将属性值修改为对象.属性名[user.username]的形式即可以访问到。
但是 ,如果不想修改页面上的属性值,我们就需要利用到这里的模型驱动。
要使用模型驱动,就必须实现模型驱动接口。而该接口需要实现的getModel()方法就替代了对象的Get和Set方法
特别注意:图中蓝色部分,之前在表单中使用user.username的时候,其实已经产生了一个对象,页面上直接用username的时候,没有产生对象,需要在Action中声明出来,否则无法获取。
模型驱动的作用:将JavaBean的实例压入对象栈的栈顶。
页面回显技术
其实就是从页面上获取值的对象的作用:即可以通过它来从页面获取对象,也可以通过它在往页面赋值。
在使用回显技术的过程中,发现一个问题:
即必须使用Struts标签才能直接获得值,否则需要用EL表达式获得.如下图1:
和图2: