• ajax回调数据 Structs has detected an unhandled exception 问题


    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...}'
  • 相关阅读:
    在Unix上使用管道压缩exp导出文件
    自制CPU的黑暗历程一
    Error C1189: #error: Please use the /MD switch for _AFXDLL builds
    Redis乐观锁解决高并发抢红包的问题
    PHP分页类
    汇编基础——使用nasm和bochs学习汇编
    数据同步工具DBsync
    完成端口的一些教程
    sdf
    (转)C#(WIN FORM)两个窗体间LISTVIEW值的修改
  • 原文地址:https://www.cnblogs.com/fengjunming/p/7231889.html
Copyright © 2020-2023  润新知