• jQuery与Struts2综合应用[stream/json]


    一、使用stream类型的Result实现Ajax

    具体步骤:

    ① 定义InputStream类型的成员变量及getter和setter

    ②具体业务方法中将要发送到客户端的json字符串赋值给成员变量

    ③编写struts.xml,定义stream生成响应数据类型及输出结果


    二、配置Action的result

    具体步骤:

    ①定义package,并继承struts-default

    ②使用<action>标签定义StreamResultAction类对应的名称和所在位置

    ③使用stream类型的result结果集

    ④使用<param>标签指定stream生成响应数据类型及输出结果

    三 编写Action类 并继承自ActionSupport类 

    注:定义的inputStream成员变量要和struts.xml<param>参数一致,并使用ByteArrayInputStream将要发送到客户端的数据赋值给成员变量

    四 实现用户名验证

    使用jQuery的Ajax方法发送数据到服务器端,获取stream类型的返回数据,并更新页面提示信息,进行拆解数据。需引入jQuery库

     <body>
       <div id="demo"></div>
       <table>
       <tr>
       <td>姓名:<input type="text" name="name" id="name" onblur="validate();"/></td>
       </tr>
       
       <tr>
       <td>密码:<input type="password" name="name" id="name"/></td>
       </tr>
       
       <tr>
       <td><center><input type="button" value="提交"/></center></td>
       </tr>
       </table>
       
       
       
      </body>

    实现效果:

     


      使用JSON插件实现JSON类型的Result

     具体步骤:

    ①将struts2-json-plugin-xxx.jar加入到struts2工程下

    ②在struts.xml中编写<package>标签,并指定该package继承json-default

    ③在<package>标签下定义具体的<action>标签,将其子标签<result>的type属性指定为“json”

    以用户登录为例:当服务器端接收到用户信息后,进行业务判断,然后返回JSON格式的数据

     

     JSON类型的Result的常用参数:

    编写Action类重写execute()进行一系列判定,通过tojson()获取到map集合的值,注意的是这里需引入gson.jar包

     

    两种实现方式:

        <script type="text/javascript">
        function validate(){
        //锁定到用户名文本框,并且取值
        var val=$('#name').val();
    
     $.post('json/jsontest','name='+val,function(data){
                //data就是打回到client的数据
                //强制让data从{}语句块形态    ----->表达式
                  data=eval("("+data.result+")");
                  //{"flag":"false"}
                  if(data.flag=="false"){
                    $("#demo").html("可用");
                  }else{
                    $("#demo").html("不可用");
                  }
                
                }); 
        
         
         
        /*  $.post('json/jsontest','name='+val,function(data){
                 //{"result":"{"flag":"false"}"}
                     data= data.result;
                     data=eval("("+data+")");
                   if(data.flag=="false"){
                  
                    $("#demo").html("可用");
                  }else{
                    $("#demo").html("不可用");
                  }
                },'json'); */
        }
        
        </script>

    实现效果:

     

  • 相关阅读:
    团队协议
    C++ 多继承和虚继承的内存布局(转)
    轻量级的.Net ORM框架介绍
    EF下CodeFirst、DBFirst与ModelFirst分析
    JDK方式
    JSON
    事务的ACID特性
    数据库查询
    Assets
    内部文件存储
  • 原文地址:https://www.cnblogs.com/WJ-163/p/5985144.html
Copyright © 2020-2023  润新知