在第一部份,定义了struts.xml文件,如下所示:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="/simple" namespace="/simple" extends="struts-default"> <action name="helloworld" class="com.tom.actions.HelloWorldAction" method="executeAction"> <result name="success">/htmls/user.jsp</result> </action> </package> </struts>
其中action配置项的class属性,method属性以及result元素的name属性都可以不写,取其默认值,如下:
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.3//EN" "http://struts.apache.org/dtds/struts-2.3.dtd"> <struts> <package name="/simple" namespace="/simple" extends="struts-default"> <action name="helloworld"> <result>/htmls/user.jsp</result> </action> </package> </struts>
不指定action的class属性
如果不指定action的class属性, 则action将取默认的Action实现类,这个类是com.opensymphony.xwork2.ActionSupport,这个是一个具体类而非抽象类
不指定action的method属性
如果不指定action的method属性,则默认值是execute,即等价于配置method="execute",所以,如果class和method都不指定,则表示响应的方法是ActionSupport的execute方法
不指定result的name属性
不指定result的name属性,则表示取默认值name=“success”,action的class,method属性不设置,result的name不设置,表示执行ActionSupport的execute方法,同时匹配返回值为“success"的forward页面地址
ActionSupport的execute方法实现:
public String execute() { return "success"; }
总结
知道默认值的取值,对于了解action配置项的含义有帮助