当前位置:编程学习 > JAVA >>

Jquery、Json、Struts2、Spring实现Ajax动态功能以及注意事项

从来没有发过文章,总是借助各位大神的文章解决问题,第一次写文章,有什么不好的地方请别介意。这个问题整了几乎一天,所以发上来希望能给其他人有所帮助。
实现的功能:
    用户管理功能的添加用户自动采用ajax动态检查用户名是否存在,存在就弹出警告,不存在就插入数据库,不多说了,直接上代码。
   一、前端Js代码(采用jquery实现)
       $(document).ready(function(){
            $("#user_add").click(function(){ 
                var params = {
                        user_name:$('#user_name').val()
                };//需要传递的参数
                $.post("user_name_check", params,callbackFun,'json');
             });
            //回调函数
            function callbackFun(data){
             if (data=="exist") { 
                    alert("name is exist");
              }else if(data=="noexist"){
                    $("#myForm").submit();
              }
           }
       });
二 前端HTML代码     
    <div id="container">
    <form action="user_manage/user_add" method="post" id="myForm"> 
        新增用户名:<input type="text" name="user.user_name" id="user_name"/><br/>
        <input type="button" value="添加" id="user_add"/>
        </form>
     </div>
这个地方需要特别注意的是 <input type="button" value="添加" id="user_add"/>这句调用ajax的语句,里面的type类型是button,而不是submit,如果是submit则默认提交表单,不会有ajax的动态效果。所以当用户名不存在时,需要手动提交表单,见上面的JS语句$("#myForm").submit();
     三、后台实现类代码
    private String user_name;//动态ajax时需要检查的用户名
    private  String result;//返回用户名是否存在的信息
注意这两个属性必须要有get、set方法,地方有限,就不发出来了。
        public String check_name_exist(){
          result=userManageService.check_name_exist(user_name);
          System.out.println(result);
          return "success";
         }
userManageService.check_name_exist是业务函数,用户名存在返回exist,不存在返回noexist。没有什么好说的。
     四、后台Struts的配置
         <package name="ajax"   extends="json-default">
        <action name="user_name_check" class="userManageAction"      method="check_name_exist">
            <!-- 返回类型为json 在json-default中定义 -->  
            <result type="json">  
                <!-- root的值对应要返回的值的属性 -->  
                <!-- 这里的result值即是 对应action中的 result -->  
                <param name="root">result</param>  
            </result>  
        </action>
    </package>
这个地方需要注意的是必须要有这个参数<param name="root">result</param>,否则前台获取不到result的值,本实验中result是字符创,也可以是一些其他object。包集成的必须是 extends="json-default",否则后面就没有type类型为json的返回。本人试了加一个namespace,发现也不能实现动态功能。其他的都是一些基本的配置,这就不多介绍了。
最后说一下关于struts和sping的配置就不发上来了,网上有的是。还有必须添加必须的json包。
有什么问题的话站内联系。 jquery struts2 spring ajax json --------------------编程问答-------------------- --------------------编程问答-------------------- 第一次发帖,感觉编辑功能不好用,也不能找到自己发的帖子,真心不好用,为什么csdn还这么火呢?
--------------------编程问答-------------------- 各位CSDN大神帮他解决问题,他就会爱上CSDN了~
补充:Java ,  Web 开发
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,