Struts2 - 如何在Action之后不呈现页面时(使用Interceptor)过滤页面

时间:2010-12-12 16:42:16

标签: jsp struts2 interceptor

我想知道(在Struts2上)是否可以将拦截器应用于单个jsp页面。例如:当我第一次加载我的应用程序时,我只是调用一个jsp(没有一个动作)。我知道如何在一个动作之前/之后放置一个拦截器,但是对于一个JSP?有可能吗?

干杯

1 个答案:

答案 0 :(得分:4)

好的struts只适用于动作,所以不能在没有动作的情况下应用拦截器,但我认为你可以达到你想要的效果:

在struts.xml文件中,您可以将操作定义为:

    <action name="textAction">
        <result>myjsp.jsp</result>
    </action>

所以'textAction'呈现myjsp.jsp ...看看你可以在包级别设置拦截器的struts文档(如果你在包中只有一个动作就可以获得你想要的行为),你甚至可以指定基于行动的拦截器堆栈。

如果你想做更少的工作......你应该将struts2-conventions-plugin添加到你的类路径中。有了它,您可以避免在大多数情况下使用struts.xml。

所以你无法摆脱这个动作,每个请求应该是一个动作......但你不必为每个动作创建一个类,并且使用约定插件你甚至不需要更新你的struts.xml只是放入jsp。如果没有struts.xml或在那里注释类,那么应用自定义拦截器将是一项挑战。