blogjava's web log ...
今天研究了一下JpetStore源代码 ,发现它的开发strust模式和我们以往开发的模式完全不同,所有的strust类都继承org.apache.struts.beanaction.BaseBean
仔细研究BeanAction类,发现它其实是一个通用类,利用反射原理,根据URL来决定调用formbean的哪个方法!
一个简单的例子
说明|:Struts-config.xml的配置里有3种映射方式,来告诉BeanAction把控制转到哪个form bean对象的哪个方法来处理。<action name="testBean" path="/test/saveUser" type="org.apache.struts.beanaction.BeanAction"> <forward name="success" path="/success.html" /> </action>此种方式表示,控制将被转发到"testBean"这个form bean对象 的"savaUser"方法(行为)来处理。方法名取"path"参数的以"/"分隔的最后一部分。parameter="*"
此种方式表示,form bean上没有任何方法被调用。如果存在"name"属性,则struts把表单参数等数据填充到form bean对象后,把控制转发到"success"。否则,如果name为空,则直接转发控制到"success"。这就相当于struts内置的org.apache.struts.actions.ForwardAction的功能前台调用