今天在学习DynaActionForm的过程中,遇到了一个问题:就是进行ActionForm的reset操作,以及validate操作。看书上说,如果要做reset操作,需要使定义一个DynaActionForm的扩展类,然后在其中重载ActionForm的reset()方法,而validate()验证操作,最好时通过Validate框架实现。但是,这里考虑,如果按照以前的ActionForm的写法,如何去做呢?
开始的时候,定义了一个类似与ActionForm的类,并且让它extends DynaActionForm类,然后,在其中定义了JSP form页面中的form元素变量(和相关的get/set方法),然后,重载了reset()和validate()方法,但是,在配置完以后,运行却出现了无法找到变量的get/set方法。后来看到书上说,DynaActionForm使用get(String name)和set(String name, Object value),来获取和设置form变量。但是考虑,如果是这样的话,这里应该怎么写呢,然后,又去网上查资料,后来在一篇英文文献上看到了相关的说明:应该在struts配置文件中的的子标签内定义form变量,然后,新建一个扩展自DynaActionForm的Form Bean,在其中只做reset()和validate()的重载(注,验证用户输入,可以通过get()方法获得),最后在struts中将刚才的那个的type属性设置了新建的那个Form Bean即可,然后运行,就没有错误了。以下给出示例:
index.jsp页面主体: