Struts2通配符配置action,然后设置default action不生效的一个bug

在struts配置文件中,使用通配符配置action,如下:
<action name="*_*" class="com.dview.sxeq.action.{1}Action" method="{2}">
			
  <result name="userDeleteSuccess" type="redirectAction">User_userList</result>
  <result name="addUserSuccess" type="redirectAction">User_userList</result>
			
</action>


然后再在这个package中设置 default-action-ref
<default-action-ref name="default" />
	<action name="default">
	   <result>/nopage.jsp</result>
	</action>


经过多次反复试验设置的default-action是不生效的,它依然会去找上面那个通配符设置的action,找不到就会报错,所以本人认为这是一个bug。

若想使用 default-action-ref的功能,就只有改配置文件如以下这样配置
<package name="default" namespace="/" extends="struts-default">

		<!-- 定义默认拦截器及默认Action-->
		<default-action-ref name="default" />

		<!-- 定义Action-->
		<action name="default">
			<result>/nopage.jsp</result>
		</action>

		<action name="User_*" class="com.dview.sxeq.action.UserAction"
			method="{1}">
			<result name="userDeleteSuccess" type="redirectAction">User_userList</result>
			<result name="addUserSuccess" type="redirectAction">User_userList</result>
			<result name="getAddUserjsp">/jsp/user/addUser.jsp</result>
			<result name="userList">/jsp/user/userList.jsp</result>
			<result name="login_fail">/login.jsp</result>
			<result name="login_success" type="redirectAction">User_userList</result>
			<result name="loginOutSuccess" type="redirect">/login.jsp</result>
		</action>

		<action name="Role_*" class="com.dview.sxeq.action.RoleAction"
			method="{1}">
			<result name="getAddRolejsp">/jsp/role/addRole.jsp</result>
			<result name="roleList">/jsp/role/roleList.jsp</result>
			<result name="roleDeleteSuccess" type="redirectAction">Role_roleList</result>
			<result name="addRoleSuccess" type="redirectAction">Role_roleList</result>
		</action>

		<action name="Right_*" class="com.dview.sxeq.action.RightAction"
			method="{1}">
			<result name="rightList">/jsp/right/rightList.jsp</result>
		</action>

		<action name="Log_*" class="com.dview.sxeq.action.LogAction"
			method="{1}">
			<result name="logList">/jsp/log/logList.jsp</result>
			<result name="logDeleteSuccess" type="redirectAction">Log_logList</result>
		</action>

		<action name="Department_*" class="com.dview.sxeq.action.DepartmentAction"
			method="{1}">
			<result name="deparList">/jsp/department/departmentList.jsp</result>
			<result name="getAddDepartmentjsp">/jsp/department/addDepartment.jsp</result>
			<result name="addDepartmentSuccess" type="redirectAction">Department_departmentList
			</result>
			<result name="departmentDeleteSuccess" type="redirectAction">Department_departmentList
			</result>
		</action>
	</package>

struts还真是麻烦啊

猜你喜欢

转载自rguess.iteye.com/blog/1884807