版权声明:欢迎朋友们的观摩,标注原创的文章,如应用,请标明出处,谢谢。 https://blog.csdn.net/qq_37012770/article/details/83049555
本文要解决的问题是在已经配置了通配符方式的Struts.xml文件中,如何使用链式的action类的跳转,而不是每一个result都跳转到jsp视图页面。
在读此文前 ,笔者默认你自己看过以下两个方面的独立使用。
1. struts.xml文件的通配符配置
2. Action类之间的串行访问
我们稍稍惠顾下一action通配符配置的写法:
- 约定写Action类时的文件命名为xxx_xxxAction.java
在之前的学习中,我初步掌握了action配置文件的通配符写法,也了解了
result的基本写法。
<result name="SUCCESS">
'这里写你要返回的类'
</result>
在action文件写成通配符的形式下,经过测试,不能在已设置通配符的action包配置文件中使用action端的跳转,因为result中间写的那个虽然是你想要跳到的action名字,但是,这个包也需要class的路径,是需要一个静态的资源的 ,而我们的通配符方式进行调用的配置文件,是你在提交之后,动态获取到你要的action的。所以综上所述,结论是将中间过渡的Action类,另外配再配置一个action包,路径也写成静态的,这样的话,就可以在中间过渡时,使用你想要的Action类了。
例如:
<!--管理员专用的处理包-->
<package name="AdminAction" extends="struts-default" namespace="">
<action name="*_*Action" class="nuc.fd.action.admin.{1}_{2}Action" method="{1}{2}">
<result name="addSUCCESS" type="chain">
get_BookAction
</result>
<!--在2.5版本之后,就要加上下面这一句,才能识别通配符的方法-->
<allowed-methods>addBook</allowed-methods>
</action>
<!--中途处理的action,不能写成统配符的格式,不然找不到,得写成静态的-->
<action name="get_BookAction" class="nuc.fd.action.admin.get_BookAction" method="showBook">
<result name="showSUCCESS">
/admin/showBooks.jsp
</result>
</action>
</package>
补充:
笔者也是初学者,在这里记录一下改bug的心路历程。如写的内容有疑问或有写的不妥的地方,欢迎讨论。