1.action配置在package里
2.例子:默认方法是execute
<action name="login" class="com.tarena.netctoss.action.LoginAction">
<result name="success" type="redirectAction">main</result>
<result name="fail">/WEB-INF/jsp/main_loginform.jsp</result>
</action>
3.action配置method
<action name="userLogin" class="action.LoginAction" method="login">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
<action name="userRegist" class="action.LoginAction" method="regist">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
4.result的name属性的值是action对应方法(默认方法是execute,也可以指定method)返回的字符串
根据相应的字符串调用不同的result,
因为可以指定方法,所以一个action根据不同的方法名响应多个请求
5.action的class和method属性可以不指定,用于调转页面(没有数据处理的时候)
class默认为ActionSupport,其execute方法中:return success
例子:
<action name="loginform">
<result>/WEB-INF/jsp/main_loginform.jsp</result>
</action>
6.使用通配符映射(wildcard mappings)方式
在struts.xml文件中配置<action…>元素时,
它的name、class、method属性都可支持通配符,
这种通配符的方式是另一种形式的动态方法调用。
当我们使用通配符定义Action的name属性时,
相当于用一个元素action定义了多个逻辑Action:
例子:
<action name="user_*" class="action.UserAction" method="{1}">
<result name="success">/success.jsp</result>
<result name="error">/error.jsp</result>
</action>
如上,
<action name=”user_*”>定义一系列请求URL是user_*.action模式的逻辑Action。
同时method属性值为一个表达式{1},表示它的值是name属性值中第一个*的值。
例如:
用户请求URL为user_login.action时,将调用到UserAction类的login方法;
用户请求URL为user_regist.action时,将调用到UserAction类的regist方法