struts2:Exception occurred during processing request: null

来源:互联网 发布:图像显著性检测 知乎 编辑:程序博客网 时间:2024/06/06 01:04

今天编写了struts2中通过token防止表单的重复提交,实现的过程中出现了struts2:Exception occurred during processing request: null异常

具体代码如下:

警告: Form token H1EAQ2YY2YACW9RCY48RPM33PISDFECY does not match the session token 2SYPDEUH6Z9OFTPHQZFFVTXE29U153GP.
2013-10-11 11:25:47 org.apache.struts2.dispatcher.Dispatcher error
严重: Exception occurred during processing request: null
Java.lang.NullPointerException
at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:630)
at com.opensymphony.xwork2.util.LocalizedTextUtil.findText(LocalizedTextUtil.java:606)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:210)
at com.opensymphony.xwork2.TextProviderSupport.getText(TextProviderSupport.java:139)
at org.apache.struts2.interceptor.TokenInterceptor.getErrorMessage(TokenInterceptor.java:182)
at org.apache.struts2.interceptor.TokenInterceptor.handleInvalidToken(TokenInterceptor.java:166)
at org.apache.struts2.interceptor.TokenInterceptor.handleToken(TokenInterceptor.java:151)
at org.apache.struts2.interceptor.TokenInterceptor.doIntercept(TokenInterceptor.java:142)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at org.apache.struts2.interceptor.debugging.DebuggingInterceptor.intercept(DebuggingInterceptor.java:256)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept(DefaultWorkflowInterceptor.java:167)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.validator.ValidationInterceptor.doIntercept(ValidationInterceptor.java:265)
at org.apache.struts2.interceptor.validation.AnnotationValidationInterceptor.doIntercept(AnnotationValidationInterceptor.java:68)
at com.opensymphony.xwork2.interceptor.MethodFilterInterceptor.intercept(MethodFilterInterceptor.java:98)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:246)
at com.opensymphony.xwork2.interceptor.ConversionErrorInterceptor.intercept(ConversionErrorInterceptor.java:138)


我编写的代码如下:

PersonAction类

package cn.itcast.action;

public class PersonAction {
private String name;


public String getName() {
return name;
}


public void setName(String name) {
this.name = name;
}


public String execute(){
return "success";
}
}


index.jsp页面

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>


<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>My JSP 'index.jsp' starting page</title>
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="expires" content="0">    

  </head>
  
  <body>
    <s:form action="list" namespace="/test" method="post" theme="simple">
    姓名:<s:textfield name="name"/><s:token/>
    <s:submit value="发送"/>
    </s:form>
  </body>
</html>


struts.xml文件

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


<struts>
<package name="itcast" namespace="/test" extends="struts-default">
<action name="list" class="cn.itcast.action.PersonAction">
<interceptor-ref name="defaultStack"/>
<interceptor-ref name="token"/>

<result name="invalid.token">/index.jsp</result>
<result name="success">/WEB-INF/page/message.jsp</result>
</action>
</package>
</struts>

1.一直查找问题都没有解决,后来发现用的是struts,action类需要继承ActionSupport,最终问题得以解决!

2.过滤器不能用

阅读全文
0 0
原创粉丝点击