gpt4 book ai didi

java - 在Struts中运行拦截器

转载 作者:行者123 更新时间:2023-12-01 05:05:24 24 4
gpt4 key购买 nike

我一直在尝试在我的项目中运行以下代码。整个项目工作正常,但拦截器部分没有显示任何结果。我是拦截器部分的新手,所以如果我的代码缺少某些内容,请告诉我。我也希望知道运行拦截器所需要做的唯一更改是否是通过添加拦截器标签在 struts.xml 文件中完成?

enter code here  
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>
<constant name="struts.devMode" value="true"/>
<package name="default" namespace="/" extends="struts-default">
<interceptors>
<interceptor name="timer" class=".."/>
<interceptor name="logger" class=".."/>
</interceptors>
<action name="HelloWorld">
<result>/HelloWorld/HelloWorld.jsp</result>
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>
</action>
<action name="SayHello" class="com.sapient.test.HelloAction">

<result name="SUCCESS">/HelloWorld/DisplayHello.jsp</result>
<result name="INPUT">/HelloWorld/HelloWorld.jsp</result>
<interceptor-ref name="timer"/>
<interceptor-ref name="logger"/>

</action>
</package>

请注意,当我添加拦截器代码时,网络应用程序的其余部分工作正常。 Web 应用程序的其余部分在运行时运行,但拦截器部分不起作用。这不是缓存问题,因为我多次尝试清理服务器和目录,但没有效果。请帮忙。

最佳答案

请在 struts.xml 中配置拦截器,如下所示,

 <interceptor name="loginInterceptor" class="......." />
<interceptor-stack name="loginInterceptorStack">
<interceptor-ref name="loginInterceptor" />
<interceptor-ref name="defaultStack" />
</interceptors>

然后将拦截器堆栈应用于操作,

  <action name="..." class=".....">
<interceptor-ref name="loginInterceptorStack"></interceptor-ref>
<result name="input">.....</result>
<result name="success">...../result>
</action>

在action配置的result之前添加拦截器。还要在拦截器中添加适当的日志记录,以便您可以在调用默认堆栈之前知道拦截器被调用。

关于java - 在Struts中运行拦截器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12762259/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com