【发布时间】:2011-05-24 06:56:48
【问题描述】:
我想知道(在 Struts2 上)是否可以将拦截器应用于单个 jsp 页面。例如:当我第一次加载我的应用程序时,我只是调用了一个 jsp(没有任何操作)。我知道如何在动作之前/之后放置拦截器,但是对于 JSP?有可能吗?
干杯
【问题讨论】:
标签: jsp struts2 interceptor
我想知道(在 Struts2 上)是否可以将拦截器应用于单个 jsp 页面。例如:当我第一次加载我的应用程序时,我只是调用了一个 jsp(没有任何操作)。我知道如何在动作之前/之后放置拦截器,但是对于 JSP?有可能吗?
干杯
【问题讨论】:
标签: jsp struts2 interceptor
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 或在那里注释类,应用您的自定义拦截器将是一个挑战。
【讨论】: