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包。
有什么问题的话站内联系。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值