Struts.xml文件的动态配置与Action的链式处理

版权声明:欢迎朋友们的观摩,标注原创的文章,如应用,请标明出处,谢谢。 https://blog.csdn.net/qq_37012770/article/details/83049555

本文要解决的问题是在已经配置了通配符方式的Struts.xml文件中,如何使用链式的action类的跳转,而不是每一个result都跳转到jsp视图页面。

在读此文前 ,笔者默认你自己看过以下两个方面的独立使用。

 1. struts.xml文件的通配符配置
 2. Action类之间的串行访问

我们稍稍惠顾下一action通配符配置的写法:

  1. 约定写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的心路历程。如写的内容有疑问或有写的不妥的地方,欢迎讨论。

猜你喜欢

转载自blog.csdn.net/qq_37012770/article/details/83049555