一:struts中action创建的两种方式
1.struts自己管理action对象
<package name="struts2" extends="struts-default">
<action name="HelloWorld" class="tutorial.HelloWorld">
<result>/HelloWorld.jsp</result>
</action>
</package>
2.struts指定spring管理action对象:
在struts.xml中编写如下代码<constant name="struts.objectFactory" value="spring" />
然后我们在spring.xml中编写action的bean如:
<bean name="baseAction" class="com.iuniversal.action.BaseAction">
<property name="helloWorldService">
<bean class="com.iuniversal.serviceimpl.HelloWorldServiceImpl"></bean>
</property>
</bean>
在struts.xml中继续添加如下代码:
<package name="base" extends="struts-default">
<!-- 注意这里calss的值对应的是spring中的bean的id,而不是实际的class类,因为action对象的创建已经托管给了spring -->
<action name="baseAction" class="baseAction" method="doBaseAction">
<result>/index.jsp</result>
</action>
</package>
二.让struts支持动态方法调用
<constant name="struts.enable.DynamicMethodInvocation" value="true" />
struts正常情况下访问的是excute()方法,如果我们在xml中制定了method(可以使用通配符,这样减少配置文件)那么就调用制定的方法;
如果设置<constant name="struts.enable.DynamicMethodInvocation" value="true" />那么就可以通过action_Namespace/action_Name!method.action的方式调用。