`
rguess
  • 浏览: 69625 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类

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还真是麻烦啊
2
6
分享到:
评论
2 楼 melearner 2014-12-26  
是struts2的哪个版本啊?
1 楼 yangyiko 2013-08-10  
呵呵,我也遇到这个BUG,
弄了好久,感觉可以加一个interceptor可以解决

相关推荐

Global site tag (gtag.js) - Google Analytics