发布于 2017-04-21 11:24:09 | 106 次阅读 | 评论: 0 | 来源: 网友投递
jQuery javascript框架
jQuery是一个兼容多浏览器的javascript框架,核心理念是write less,do more(写得更少,做得更多)。jQuery在2006年1月由美国人John Resig在纽约的barcamp发布,吸引了来自世界各地的众多JavaScript高手加入,由Dave Methvin率领团队进行开发。
JSON 的格式说明可以在可以这里看到,非常详细,还是中文的。
JSON 格式说明
需要特别注意的是,在 JSON 中的属性名是需要使用引号引起来的。
jQuery 是现在使用广泛的脚本库,那么,在 jQuery 中如何使用 JSON 呢?
解析 JSON
在 jQuery 中已经提供了对于解析 JSON 的内在支持,
jQuery.parseJSON 函数提供了解析的支持,详细的说明见这里。
var obj = jQuery.parseJSON('{"name":"John"}');
alert( obj.name === "John" );
var thing = {plugin: 'jquery-json', version: 2.3};
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}'
var thing = {plugin: 'jquery-json', version: 2.3};
var encoded = $.toJSON( thing ); // '{"plugin":"jquery-json","version":2.3}'
var name = $.evalJSON( encoded ).plugin; // "jquery-json"
var version = $.evalJSON(encoded).version; // 2.3
// Ajax 设置
$.ajaxSetup({ contentType: 'text/json' });
public int Sum(int x, int y)
{
return x + y;
}
// Ajax 设置
$.ajaxSetup({ contentType: 'text/json' });
$("#wcfBtn").click(function () {
$.post("Service1.svc/Sum", $.toJSON({ x: 2, y: 3 }), function (data) {
alert(data.d);
});
});
// #1
// 为了在脚本中使用,必须增加这个标签
[System.ServiceModel.Activation.AspNetCompatibilityRequirements(
RequirementsMode = System.ServiceModel.Activation.AspNetCompatibilityRequirementsMode.Allowed)]
// #2
// 在网站的配置文件中也需要进行设定
public class Service1 : IService1
{
public int Sum(int x, int y)
{
return x + y;
}
}
<system.serviceModel>
<!-- 为了支持在浏览器端调用 WCF 服务的特定配置 -->
<serviceHostingEnvironment aspNetCompatibilityEnabled="true">
<serviceActivations>
<!-- relativeAddress 服务的地址
service 实现服务的类型,全名,包含命名空间,甚至程序集
factory 是 WCF 系统提供,直接使用
-->
<add relativeAddress="Service1.svc" service="MServer.Service1" factory="System.ServiceModel.Activation.WebScriptServiceHostFactory"
/>
</serviceActivations>
</serviceHostingEnvironment>
<behaviors>
<serviceBehaviors>
<behavior name="">
<serviceMetadata httpGetEnabled="true" />
<serviceDebug includeExceptionDetailInFaults="false" />
</behavior>
</serviceBehaviors>
</behaviors>
</system.serviceModel>
////////////1、在HTML中,有这样一个表单:
<form method="post" name="searchform" id="searchform" method="/sek.go">
<input name="query" value="" type="text" id="query" />
<input type=”submit” value="查询"></input>
</form>
////////////当然,要想在HTML中使用Js功能,必须在<head/>中加入
<script type="text/javascript"src="/style/js/ajax.js"></script>
////////////2、然后在ajax.js文件中加入如下代码
function userSearch(){
var query = $("#searchform input[@name='query']").val();
$.post("/userSearch.htm", { query: query } ,function callback(json){
var userlist = $.parseJSON(json);
userList(userlist);
});
}
/*******************************************
解释如下:
1)、"#searchform input[@name='query']";的意思是: 选择id为searchform其下的(name属性值为'query'的)input标签
2)、$(“”).val()意为要得到(“”)所选中属性的值;
3)、在$.post()中,第一项参数是指定目标servlet,即要把本post请求发给的那个servlet。
第二项是本post请求所携带的数据;“:”前的为key或者name,后为value;
第三项是回调函数,其内若有形参,则表示要对从servlet返回的值进行处理,这里的callback的功能是将JSON对象json转换成了JS对象userlist,然后将JS对象传入函数userList
3、post请求携带了名为query的参数去了后台,在servlet中进行处理:
//从名为"query"能的参数中取出post带过来的数据
String query = request.getParameter("query");
if (query != null && !query.isEmpty()
&& !query.trim().equalsIgnoreCase("")) {
//如果"query"的值不为空,就用'query'为参数构建HQL语句
String hql = "from TUser as user where user.userName like '"+ query + "%'";
//到库表TUser中进行查询,并得到一个表结构
List list = weilav3TUserDAO.getListByHQL(hql);
if (list != null && !list.isEmpty()) {
//若list不为空,则将其转换成JSON对象,并存入jsonArray中
JSONArray jsonArray = JSONArray.fromObject(list);
//下面就是把存有查询结果的JSON对象返给页面
response.setContentType("text/html;charset=utf-8");
PrintWriter out = response.getWriter();
out.println(jsonArray);
……
}else {……}
**************/