方法一、最基础的配置方法,但是在开发中基本没人会这么用。
上述配置的请求路径为:http://127.0.0.1:8080/struts2_002/login/login1
login是包名,login1是请求action的名称
<!-- 1.action的普通配法 请求路径 :login/login1 -->
<package name="login" namespace="/login" extends="struts-default">
<action name="login1" class="com.test.LongAction" method="login">
<result name="success">/WEB-INF/page/success.jsp</result>
<result name="failed">/WEB-INF/page/failed.jsp</result>
</action>
</package>
方法二、关于通配符的配置,配置比较通用的action,但是这种配法对命名规则有着比较严格的要求,这儿也就体现了“约定优于配置”的原则。上述配置的请求路径:http://127.0.0.1:8080/struts2_002/login1/user_add
其中login1是包名,user_add必须是符合"*_*"规则的,这个路径中action对应的name就是“user_add”,method="adduser",成功后对应的jsp页面为:useradd.jsp。
<!--2. action的通用配法 ,请求路径 :login1/user_add-->
<package name="login1" namespace="/login1" extends="struts-default">
<action name="*_*" class="com.test.LongAction" method="{2}user">
<result name="success">/WEB-INF/page/{1}{2}.jsp</result>
<result name="failed">/WEB-INF/page/failed.jsp</result>
</action>
</package>
方法三、通过修改访问路径来动态访问action,这种方法也比较常用。
请求路径:http://127.0.0.1:8080/struts2_002/login2/login2!test
我们可以修改“!”后的方法名来修改访问哪一个方法。这种方法不用配置action的method属性比较灵活好用。
<!-- 3.不配置method属性, 请求路径:llogin2/login2!test -->
<package name="login2" namespace="/login2" extends="struts-default">
<action name="login2" class="com.test.LongAction" >
<exception-mapping result="" exception=""></exception-mapping>
<result name="success">/WEB-INF/page/success.jsp</result>
<result name="failed">/WEB-INF/page/failed.jsp</result>
</action>
</package>