Structs has detected an unhandled exception

今天算倒霉了,用maven写的一个项目,竟然出现了以下低级的错误,在用ajax修改密码时,回调的数据竟然是以下的东东。。。。

**************************************************************************************

$.post("${pageContext.request.contextPath}/user_editPassword",{password:NewPass},function(data){
               alert("ajax返回值:"+data);
               if(data.result == "success"){
                  $.messager.alert("成功提示",data.msg,"info");
               }else{
                  $.messager.alert("失败提示",data.msg,"error");
               }
               $("#editPwdWindow").window("close");
         });

**********************************************

这里引用了struts2-json-plugin包

json-default继承了struts-default

<!-- 修改密码 -->

<package name="needlogin" extends="json-default">
        <action name="user_*" class="userAction" method="{1}">
            <!-- 修改密码 -->
            <result name="editPasswordSuccess" type="json">
                <param name="root">map</param>
            </result>
        </action>

</package>

******************************************************************************

private String editPassword() {
        User loginUser = (User) ServletActionContext.getRequest().getSession().getAttribute("user");
        user.setId(loginUser.getId());
      //  通过用户id修改密码,如果修改不成功会抛异常      
        Map<String,Object> map=new HashMap<String,Object>();
        try {
          //修改成功
          System.out.println(user.getPassword());
          userService.editPassword(user);
           map.put("result", "success");
           map.put("msg", "修改成功");
           ActionContext.getContext().put("map", map);
    } catch (Exception e) {
         //修改失败
         map.put("result", "false");
           map.put("msg", "修改失败,请查找原因"+ e.getMessage());
           ActionContext.getContext().put("map", map);
    }
       
        return "editPasswordSuccess";
    }

*******************************************

这个问题找了很久,ajax一直访问不到UserAction这个类,检查了strut.xml,applicationContext.xml的配置,没问题

在检查ajax的访问路径,也没有问题,用firebug清楚能看到访问的路径,就是最后到action类的方法时就访问不了,

然后,就检查这个方法,很扎心

原来是这个方法我使用了private,恍然大悟

这就是访问不到的原因,把private改为public,然后就成功了!!!!

ajax第二种常见错误

$.ajax({
type: 'POST',
url: url,
data: data,
success: success,
dataType: dataType
}); 常常容易忽略的错误是:data发送的数据时json字符串,而不是json数据 ==>> data:'{key1:value1,key2,value2...}'

ajax回调数据 Structs has detected an unhandled exception 问题的更多相关文章

  1. Struts has detected an unhandled exception

    这个问题是struts和jsp页面的配置之间产生了问题,就是struts里边的名字和jsp里用的名字不是同一个名字,所以无法识别,所以检查一下里边的命名.

  2. Struts has detected an unhandled exception异常

    近期在写struts框架的时候会时不时的出现这个异常,多次实验以后发现,目前解决的方法只能通过重新部署项目再重新启动服务器解决,通常这个异常会出现在DMI即动态方法调用过程中.

  3. 【spring 后台跳转前台】使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中

    问题: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:  问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方法 ...

  4. 【springMVC 后台跳转前台】1.使用ajax访问的后台,后台正常执行,返回数据,但是不能进入前台的ajax回调函数中 ----2.前后台都没有报错,不能进入ajax回调函数

    问题1: 使用ajax访问的后台,后台正常执行,并且正常返回数据,但是不能进入前台的ajax回调函数中 问题展示:  问题解决: 最后发现是因为后台的方法并未加注解:@ResponseBody,导致方 ...

  5. Asp.net中的ajax回调模式(ICallbackEventHandler)

    客户端回调本质上就是指通过前端的客户端脚本向服务器端传递相应的数据参数,服务器端再以接受到的参数进行查询和处理,最后将结果回传到客户端进行显示.asp.net 2.0提供了实现无刷新回调的接口ICal ...

  6. ThinkPHP中ajax提交数据

    最近在做项目时遇到了一些需要从页面用ajax提交数据到后台的操作,无奈本人技术有限,网上苦寻,研究了一下ajax和thinkPHP的结合,黄天不负苦心人,终于搞定了. 闲话少叙,进入正题:我需要从页面 ...

  7. ExtJS学习笔记2:响应事件、使用AJAX载入数据

    响应事件: 1.设置一个html标记 <div id="my-div">Ext JS 4 Cookbook</div> 2.使用get函数获取此标记对象 v ...

  8. 第一百五十九节,封装库--JavaScript,表单序列化结合ajax提交数据

    封装库--JavaScript,表单序列化结合ajax提交数据 封装库,表单序列化方法 /** xu_lie_biao_dan()方法,表单序列化方法,将自动获取指定表单里面的各项字段name值和va ...

  9. 使用Python的Flask框架,结合Highchart,动态渲染图表(Ajax 请求数据接口)

    参考链接:https://www.highcharts.com.cn/docs/ajax 参考链接中的示例代码是使用php写的,这里改用python写. 需要注意的地方: 1.接口返回的数据格式,这个 ...

随机推荐

  1. 流畅的python第一章python数据模型学习记录

    python中有些特殊的方法,以双上下划线开头,并以双下划线结束的方法.如__getitem__,这些方法是特殊的方法,供python解释权内部使用,一般来说不需要调用 还有一种是以双下划线开头的,如 ...

  2. jQuery选择器的灵活用法

    // 摘自: http://hi.baidu.com/274084093/item/47a4ce696e89e534ad3e836b jQuery中选择器很强大,可以根据元素名称.ID.class等多 ...

  3. Sublimetext 3 经常使用插件

    今天配了一下开发工具,事实上主要是想配置svn插件,可是后来查了下,发现sublimet的插件库还是蛮丰富的.顺手安了一些别的插件进去. 1,Svn插件安装的一些问题 首先ctrl+shift+p,打 ...

  4. 【MVC+MySQL+EntityFramework】查询性能优化笔记

    通过在DbContext中定了表之间的关系,查询后在View中通过item.ProjectOverHour来显示关联表数据. modelBuilder.Entity<ProjectOverHou ...

  5. Python 二维码解码

    二维码解析 Python中关于二维码解析的现成模块有很多,比较著名的就是Zbar以及ZXing.然而很不幸的是,官方的版本都是支持到python2.x,下面是在python2.x的例子: import ...

  6. android与服务端通讯时使用到的GZIP压缩及解压

    为了减小android项目与服务端进行通讯时的数据流量,我们可以使用GZIP对服务端传输的数据进行压缩,在android客户端解压.或在客户端压缩,在服务端解压.代码如下: android客户端的GZ ...

  7. 05-hibernate注解-多对一单向外键关联

    多对一单向外键 1,多方持有一方的引用,比如:多个学生对应一个班级(多对一) 2,@ManyToOne(cascade={CascadeType.ALL},  fetch=FetchType.EAGE ...

  8. JDBC数据库编程:callableStatement接口

    了解MySQL存储过程建立, 了解存储过程中参数传递的三种方式 了解callablestatement调用存储过程操作. 因为在现在开发中,使用存储过程的地方越来越少,所以,对于存储过程使用,只需要了 ...

  9. ios8设置application badge value

    在ios8中,直接设置application badge value会出错 [[UIApplication sharedApplication] setApplicationIconBadgeNumb ...

  10. js可以关闭android页面上的键盘输入法

    尝试让获取焦点的元素失去焦点,document.activeElement.blur() js实现焦点进入文本框内关闭输入法:imeMode2011-05-26 11:23要用到的东西: imeMod ...