jQuery+Ajax+Struts2.0 重点看

基于jQuery的Ajax用法:

基于JQuery框架的AJAX
在JQuery中,AJAX有三种实现方式:$.ajax(),$.post,$.get()。
(1)
使用$.post实现Ajax向页面发送数据 ($.get()的用法与此相似)
$.post(’save.cgi’, {text: ‘my string’,number: 23}, function() {
alert(’Your data has been saved.’);
});
(2)
如果您确实需要编写一些复杂的 Ajax 脚本,那么需要用到 $.ajax() 函数。您可以指定 xml、
script、html 或者 json,jQuery 将自动为回调函数准备合适的结果,这样您便可以立即使用该结果。还可以指定 beforeSend、error、success 或者 complete 回调函数,向用户提供更多有关Ajax 体验的反馈。
$.ajax() 使 Ajax 由复杂变简单
$.ajax({
url: ‘document.xml’,
type: ‘GET’,
dataType: ‘xml’,
timeout: 1000,
error: function(){
alert(’Error loading XML document’);
},
success: function(xml){
// do something with xml
}
});
 
另一实例:
    XHTML(主要):
    代码: 复制内容到剪贴板
    <div id="result" style="backgroundrange;border:1px solid
red;width:300px;height:400px;"></div>
    <form id="formtest" action="" method="post">
    <p><span>输入姓名:</span><input type="text" name="username" id="input1" /></p>
    <p><span>输入年龄:</span><input type="text" name="age" id="input2" /></p>
    <p><span>输入性别:</span><input type="text" name="sex" id="input3" /></p>
    <p><span>输入工作:</span><input type="text" name="job" id="input4" /></p>
    </form>
    <button id="send_ajax">提交</button>
    <button id="test_post">OST提交</button>
    <button id="test_get">GET提交</button>
    JS:
    1、引入jquery框架:
    代码: 复制内容到剪贴板
    <script  type="text/javascript" src="../js/jquery.js"></script>
    2、构建AJAX,JQUERY的好处是不需要在XHTML中使用JS代码来触发事件了,可以直接封装在JS
文件中:
    代码: 复制内容到剪贴板
    <script type="text/javascript">
    //$.ajax()方式
    $(document).ready(function (){
       $('#send_ajax').click(function (){ //直接把onclick事件写在了JS中,而不需要混在
XHTML中了
              var params=$('input').serialize(); //序列化表单的值,与prototype中的
form.serialize()相同
             $.ajax({
                   url :'ajax_test.php',  //后台处理程序
                   type:'post',    //数据发送方式
                 dataType:'json',  //接受数据格式
                   data:params,  //要传递的数据
                   success:update_page  //回传函数(这里是函数名)
                   });
            });
    });
    function update_page (json) { //回传函数实体,参数为XMLhttpRequest.responseText
           var str="姓名:"+json.username+"";
           str+="年龄:"+json.age+"";
           str+="性别:"+json.sex+"";
           str+="工作:"+json.job;
           $("#result").html(str);
    }
 
(三)Struts2 + jQuery 的简单例子使用
JSON插件提供了一种名为json的ResultType,一旦为某个Action指定了一个类型为json的Result,
则该Result无需映射到任何视图资源。
因为,JSON插件允许我们在JavaScript中异步调用Action,且负责将Action里的状态信息序列化成
JSON格式的数据,并将该数据返回给客户端页面的JavaScript 。这样就可以完成Ajax交互。
1、将struts2的json插件加入web工程的lib,jsonplugin的下载地址:
2、struts.xml添加专为ajax使用的package
 <package name="ajax" extends="json-default">
        <action name="ajaxRequest"  class="org.david.struts2.HelloWorld">
            <result type="json"></result>
        </action>
</package>       
            
3、在页面中引入 jquery的js文件库      
 <SCRIPT type="text/javascript" src="js/jquery-1.2.6.min.js"></script>
 <SCRIPT type="text/javascript">
            function clickButton()
            {   
                var url = 'ajaxRequest.action';
                var params = {
                           name:$('#name').attr('value'),
                           contactEmail:$('#contactEmail').attr('value'),
                           subject:$('#subject').attr('value'),
                           content:$('#content').attr('value')               
                       }; //通过id获得输入值
                 jQuery.post(url, params, callbackFun, 'json');
               }
//url:响应aciton;params:传入参数;callbackFun:响应完成后的回调函数;
            function callbackFun(data)
            {
                 alert("SUCCESS");
            }
     </SCRIPT>
4、action逻辑与普通的ation写法无大区别。
     JSON将Action里的状态信息序列化成JSON格式的数据

posted on 2013-11-17 10:03  fantiejun0436  阅读(114)  评论(0)    收藏  举报

导航