您的位置:首页 > 编程语言 > Java开发

struts2运用拦截器时出现NullPointerException

2011-01-02 12:51 399 查看
最近在利用struts2拦截器实现文字过滤功能是出现了如下异常:

java.lang.NullPointerException

dr.interceptor.MyInterceptor.intercept(MyInterceptor.java:19)

com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:236)

org.apache.struts2.impl.StrutsActionProxy.execute(StrutsActionProxy.java:52)

org.apache.struts2.dispatcher.Dispatcher.serviceAction(Dispatcher.java:468)

org.apache.struts2.dispatcher.FilterDispatcher.doFilter(FilterDispatcher.java:395)

经过查询才知道,原来是因为在struts.xml配置自己定义的拦截器将默认的拦截器栈defaultStack覆盖,错误代码如下:

<struts>

<package name="struts2" extends="struts-default">

<interceptors>

<interceptor name="myInterceptor" class="dr.interceptor.MyInterceptor"></interceptor>

</interceptors>

<action name="public" class="dr.action.PublicAction">

<result name="success">/success.jsp</result>

<interceptor-ref name="myInterceptor"/>

</action>

</package>

</struts>

解决的办法是在struts.xml文件中配置defaultStack,具体代码如下:

<struts>

<package name="struts2" extends="struts-default">

<interceptors>

<interceptor name="myInterceptor" class="dr.interceptor.MyInterceptor"></interceptor>

</interceptors>

<action name="public" class="dr.action.PublicAction">

<result name="success">/success.jsp</result>

<interceptor-ref name="defaultStack"/>

<interceptor-ref name="myInterceptor"/>

</action>

</package>

</struts>

并且配置defaultStack的代码必须放在配置自定义拦截器(myInterceptor)前面。

本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/duanruihaoren/archive/2011/01/01/6111788.aspx
本文出自 “duanruihaoren专栏” 博客,请务必保留此出处http://duanruihaoren.blog.51cto.com/2448130/470766
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐