zoukankan      html  css  js  c++  java
  • 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...}'
  • 相关阅读:
    syslog日志格式解析
    Linux打补丁的一个简单例子
    Linux打补丁的一些问题
    安全漏洞整改解决方案(很不错网络文章)
    Linux系统启动过程
    chkconfig命令主要用来更新(启动或停止)和查询系统服务的运行级信息
    主机名/etc/hosts文件的作用
    Linux中如何配置IP相关文件
    /bin、/sbin、/usr/bin、/usr/sbin目录Linux执行文档的区别
    日志生成控制文件syslog.conf
  • 原文地址:https://www.cnblogs.com/fengjunming/p/7231889.html
Copyright © 2011-2022 走看看