技术领域非常多东西流行,自然有流行的道理。这几天用了jQuery,深感有些人真是聪明绝顶,能将那么多技术融合的如此完美。

首先明白个概念:

jQuery是什么:是使用javascript语言开发的,用于满足项眼下台各种操作须要的js程序文件。

也就是说。jQuery基本上就是个js程序集,基础核心是jQuery.js文件

l        当然依据不同的版本号详细的表现形式:

jQuery.1.6.js或者jquery-1.5.1.js

这个是版本的不同,详细有哪些差别,还没发现。

l        还有这样的形式

jquery-1.5.1.min.js(紧缩格式。取消回车,一行代码)

l        依据应用需求的不同。jQuery

1          引入jQuery

项目中引入jQuery

l        下载jQuery:http://docs.jquery.com/Downloading_jQuery

l        加入核心文件:将核心的jQuery文件拷贝到项目中。

 <SCRIPT type="text/javascript"src="js/jquery/jquery-1.6.js"></script>

        <SCRIPTtype="text/javascript">

functioncheckkey()

{

…………使用jQuery技术自己定义的代码…………

}

</SCRIPT>

2          jQuery的Ajax

jQuery的内容很庞杂,能够解决诸多方面的需求。主要包含:Ajax。页面效果,页面验证。

作为J2ee项目,我主要关注了一下Ajax和页面验证。

jQuery的Ajax非常easy,只使用核心文件jQuery.js就能够实现了。

函数

描写叙述

jQuery.ajax()

运行异步 HTTP (Ajax) 请求。

jQuery.get()

使用 HTTP GET 请求从server载入数据。

jQuery.getJSON()

使用 HTTP GET 请求从server载入 JSON 编码数据。

jQuery.post()

使用 HTTP POST 请求从server载入数据。

有关Ajax的方法有非常多,这里仅仅简单研究了三种(事实上就一种jQuery.ajax()),其他的都是jQuery.ajax()的简写形式。

详细格式,上述站点说的已经很清楚了,记住例如以下格式就能够。

$.ajax({

type: 'POST',         //提交方法

url: url,                            //提交的地址

data: data,                 //提交的參数

success: success,         //成功后,回调的函数名

dataType: dataType     //返回的数据类型

});

演示样例:

post的演示样例:使用ajax()的简化格式post()方法:中间有三个參数:url,data(json格式)。回调函数(回调函数能够定义在他处。此处仅写函数名)

$.post("test.jsp",

{name: "John", time: "2pm" },

     function(data){

          alert("DataLoaded: " + data);

   });

 

3          Struts2整合jQuery

Struts2中基本的业务操作都是通过Action来完毕的。此时就须要jQuery来訪问Struts2的Action。

$.post("Action",……)

3.1         Login.jsp页面:

l        功能:用户登录。首先须要输入公司标识码:

l        正确:显示对勾;

l        错误:显示红叉;

l        jQuery代码:

<SCRIPTtype="text/javascript" src="js/jquery/jquery-1.6.js"></script>

<SCRIPTtype="text/javascript">

            function checkkey(){   

                var url = 'getKeyExist';

                var params ={companyKey:$('#ckey').attr('value')};

                 $('#warn').html("<imgsrc='image/ajax/wait.gif'/>");

                jQuery.post(url, params,callbackFun);

            }

            function callbackFun(data){

                $('#warn').html(data);

            }

</SCRIPT>

l        HTML:当文本框失去焦点时,触发回调事件。

<DIV class=line><LABEL class=big id=lblName>公司标识</LABEL>

<INPUT id='ckey' name="ckey" onblur="checkkey();"><spanid="warn"></span>

</DIV>

l        说明:

n        当文本框‘ckey’失去焦点时:调用“checkkey”函数。

n        “checkkey”函数分别确定两个信息:

u      异步訪问:'getKeyExist'——推断标识是否正确的Action类。

u      參数:{companyKey:$('#ckey').attr('value')},一个以json格式拼写的參数。

u      注:Json的对象格式:

u      发出异步请求:jQuery.post(url, params, callbackFun);

3.2         Action代码:

传统的Action都是返回String,依据String的不同决定forward到不同的Jsp页面,这给Ajax带来麻烦。我当初还是走了些弯路。

3.2.1   通过Jsp得到回调信息

繁琐。意义不打, 删去/略 !

3.2.2   Action自主完毕响应(即自己完毕结果对象的Json串行化,然后写入HttpServletResponse
):

后来发现,Action也能够自主完毕响应,不须要Jsp的支持。

代码改动例如以下:

l        Action:新建了个方法getKeyExist。不提供返回值。

if(complist.size()>0)

remessage="<imgsrc=’image/ajax/yes.gif’/> ";

else

remessage="<imgsrc=’image/ajax/no.gif’ /> ";

              HttpServletResponseresponse = ServletActionContext.getResponse();

       response.setCharacterEncoding("UTF-8");     

       response.getWriter().write(remessage);    

l        struts.xml:又一次建立了无结果result;

<actionname="getKeyExist" class="ResponseMessageAction"method="getKeyExist">

</action>

l        此时得到的响应就简单干净了非常多。

上述方法已经能够得到响应的信息,可是在非常多情况下,还须要对响应的结果进行区分,来决定不同的显示效果,此时,响应值就要携带很多其它的信息。也就是说不是简单的一个字符串。而是一个对象。那么使用Json格式相对来说就比較方便(3.1提到了Json的对象格式)。

l        Action:响应信息改为json格式。

if(complist.size()>0){

remessage="{type:'yes',show:'<imgsrc=\"image/ajax/yes.gif\" />'}";

}

else{

remessage="{type:'no',show:'<imgsrc=\"image/ajax/no.gif\" />'}";                                  }

l        jQuery:回调结果

function callbackFun(data){

eval('json=' + data +';');
//自己解析Json响应数据

if(json.type=='no'){

$('#ckey').focus();

}

$('#warn').html(json.show);

}

Struts2 整合jQuery实现Ajax功能(1)的更多相关文章

  1. Struts2 整合jQuery实现Ajax功能(2)

    1.1.1   Action利用struts2-json-plugin-X.X.X.jar响应Json格式信息: 1.      function removerecordbyid(recordid) ...

  2. 模仿JQuery封装ajax功能

    需求分析 因为有时候想提高性能,只需要一个ajax函数,不想引入较大的jq文件,尝试过axios,可是get方法不支持多层嵌套的json,post方式后台接收方式似乎要变..也许是我不太会用吧..其实 ...

  3. Struts2 使用jQuery实现Ajax

    在jQuery中将Ajax相关的操作进行封装,使用时只需在合适的地方调用Ajax相关的方法即可,相比而言,使用jQuery实现Ajax更加简洁,方便 1.$.Ajax()可以通过发送Http请求加载远 ...

  4. Spring+Hibernate+Struts2整合之实现登录功能

    前端代码: <form id="loginForm" action="${ pageContext.request.contextPath }/user_login ...

  5. 从零开始学习jQuery (六) AJAX快餐

    一.摘要 本系列文章将带您进入jQuery的精彩世界, 其中有很多作者具体的使用经验和解决方案,  即使你会使用jQuery也能在阅读中发现些许秘籍. 本篇文章讲解如何使用jQuery方便快捷的实现A ...

  6. Jquery和Ajax的关系!

    Jquery是一种JavaScript框架,而Ajax(Asynchronous JavaScript and XML)是异步JavaScript和XML. Jquery是JavaScript的框架, ...

  7. 份-城市,基于jQuery的AJAX二级联动,用Struts2整合AJAX【非数据库版】

    package loaderman.provincecity; import java.io.IOException; import java.util.LinkedHashSet; import j ...

  8. Struts2处理(jQuery)Ajax请求

    1. Ajax     Ajax(Asynchronous JavaScript and XML,异步JavaScript和XML)时一种创建交互式网页应用的网页开发技术,它并不是一项新的技术,其产生 ...

  9. 3、尚硅谷_SSM高级整合_使用ajax操作实现增加员工的功能

    20.尚硅谷_SSM高级整合_新增_创建员工新增的模态框.avi 1.接下来当我们点击增加按钮的时候会弹出一个员工信息的对话框 知识点1:当点击新增的时候会弹出一个bootstrap的一个模态对话框 ...

随机推荐

  1. col - 过滤掉输入中的反向换行符

    SYNOPSIS(总览) col [-bfx ] [ Fl l Ar num ] DESCRIPTION(描述) Col 过滤掉反向(以及半反向)换行符(LF: line feed or NL: ne ...

  2. 梯度提升决策树(GBDT)与XGBoost、LightGBM

    今天是周末,之前给自己定了一个小目标:每周都要写一篇博客,不管是关于什么内容的都行,关键在于总结和思考,今天我选的主题是梯度提升树的一些方法,主要从这些方法的原理以及实现过程入手讲解这个问题. 本文按 ...

  3. 关于OpenMP的归约操作reduction

    这里提一个重要的点 像这样 ; void ff() { sum += 0.5; } //main() #pragma omp parallel for reduction(+:sum) ; i < ...

  4. phpstorm破解激活码

    一.将“0.0.0.0 account.jetbrains.com”添加到hosts文件中 二.浏览器打开 http://idea.lanyus.com,点击页面中的“获得注册码”,然后在注册时切换至 ...

  5. ORM之创建数据库

    ORM之创建数据库 样板:创建表名为UserInfo的表,表的主键可自行写,Django的ORM也可自行创建. from django.db import models class UserInfo( ...

  6. Matlab学习笔记(一)

    一.MATLAB概述 (一)运行环境 命令行窗口(Command Window) 表 1-1 数据显示格式设置(e_one_1.m) 格式 实例 说明 format short 3.1416 小数点后 ...

  7. Python关于函数作为返回值的理解(3分钟就看完了)

    话不多说,直接看例子,上代码: def line_conf(): def line(x): return 2 * x + 1 return line #return a function object ...

  8. 使用java发送电子邮件

    经常在账号绑定邮箱或找回密码时,邮箱会收到一条验证邮件,好奇用代码该怎么发送邮件,看到了许多相关的博客,实现步骤都写的很详细,今天照着其他博客的步骤也确实实现了代码发送邮件,在这里重新记录下步骤,加深 ...

  9. 洛谷P1710地铁涨价

    题目背景 本题开O2优化,请注意常数 题目描述 博艾市除了有海底高铁连接中国大陆.台湾与日本,市区里也有很成熟的轨道交通系统.我们可以认为博艾地铁系统是一个无向连通图.博艾有N个地铁站,同时有M小段地 ...

  10. 【NOIP2017练习&BZOJ4998】星球联盟(强联通分量,并查集)

    题意: 在遥远的S星系中一共有N个星球,编号为1…N.其中的一些星球决定组成联盟,以方便相互间的交流. 但是,组成联盟的首要条件就是交通条件.初始时,在这N个星球间有M条太空隧道.每条太空隧道连接两个 ...