struts2请求无法跳转到后台执行acton方法

来源:互联网 发布:python 自定义函数 编辑:程序博客网 时间:2024/05/29 15:13
问题现象


前台发送请求,经过一系列struts拦截器无法跳到后台执行action方法


原因(排除请求错误,配置错误等情况)


在页面请求到后台Action之间会先经过一系列Struts默认的拦截器,拦截器处理失败,导致问题出现。 


最常出现的问题是validate没验证通过,通常是由于页面上定义的域与Action的属性类型不匹配导致




解决办法
在Action中重写以下三个方法


public void addActionError(String anErrorMessage){
    System.out.println(anErrorMessage);
}
public void addActionMessage(String aMessage){
    System.out.println(aMessage);
}
public void addFieldError(String fieldName, String errorMessage){
    System.out.println(fieldName+"---"+errorMessage); // 如果属性有问题,会打出:OperateDate---操作类型不正确OperateDate
}




方法2
 
1.在struts配置文件中找到对应的Action,在增加<result name = "input" >....</result> 


2.IE开发人员工具(F12)调试,在请求.do对应的Success方法中第一行打断点,后台返回到此处断点。 


3.在控制台输入:res.responseText,在显示的内容中能找到“类型不正确”的字段


如果确实是页面定义域所传值与后台action属性类型不匹配的话,以上两种方法执行后都会在后台打印出页面上与Action的属性类型不匹配的域;如果不是,那回头找找排除的那两种情况吧(请求URL问题,struts配置文件配置问题)

原创粉丝点击