您的位置:首页 > Web前端 > JQuery

jquery调用struts2,返回script/text/json格式的数据

2011-10-26 09:32 639 查看
本文在ajax中调用struts2 action ,查询数据库,然后返回字符串,演示返回script,text,json类型的数据的用法

一。返回script和text时代码都一样

Java代码



ajax-jquery.js

function commonAjax(oper,prod,url){

oper.bind("change",function(){comJquery(oper,prod,url)});

prod.bind("change",function(){comJquery(oper,prod,url)});

}

function comJquery(oper,prod,url){

var prodId=prod.val();

if(oper.val()!=''&&prod.val()!=''&&prod.val()!=0&&prod.val()!=-1){

jQuery.ajax({

url : url,

data : {productId : prodId},

type : "post",

cache : false,

dataType : "script"或者"text",

success:callback

});

}else{

$("#company").html('');

}

}

function callback(data){

$("#company").html(data);

}

jsp页面调用ajax js(不管返回什么类型,调用的代码都一样)

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

<script type="text/javascript" src="script/json2.js"></script>

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

var op=$("#cbApplySubmit_changeApplyFormBO_operationId");

var pr=$("#cbApplySubmit_changeApplyFormBO_productId");

var url="${contextPath}/assets/businessChange/ajaxGetCompany.do";

commonAjax(op,pr,url);

struts2 action

private Integer productId;

private IProductMng productMng; // 通过spring注入的service

// get set

public void ajaxGetCompany() throws Exception {

ProductBO prod = productMng.loadProduct(productId);

Integer companyId = prod.getCompanyId();

CompanyBO comp = productMng.loadCompany(companyId);

String message = "事业部为:" + comp.getName();

sendMsg(message);

}

public void sendMsg(String content) throws IOException{

HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("UTF-8");

response.getWriter().write(content);

}

二。返回json格式

Java代码



function commonAjax(oper,prod,url){

oper.bind("change",function(){comJquery(oper,prod,url)});

prod.bind("change",function(){comJquery(oper,prod,url)});

}

function comJquery(oper,prod,url){

var prodId=prod.val();

if(oper.val()!=''&&prod.val()!=''&&prod.val()!=0&&prod.val()!=-1){

jQuery.ajax({

url : url,

data : {productId : prodId},

type : "post",

cache : false,

dataType : "json",

success:callback

});

}else{

$("#company").html('');

}

}

function callback(data){

$("#company").html(data[0].msg); // 因为json对象中只有一个值

// 完整写法如下

//function callback(data){

// var buf="";

// for(var i=0;i<data.length;i++){

// buf+=data[i].msg;

// }

// $("#company").html(buf);

//}

}

struts2 action 需要组装json对象

import net.sf.json.JSONArray;

public void ajaxGetCompany() throws Exception {

ProductBO prod = productMng.loadProduct(productId);

Integer companyId = prod.getCompanyId();

CompanyBO comp = productMng.loadCompany(companyId);

String message = "事业部为:" + comp.getName();

JSONArray jsonObj = JSONArray.fromObject("[{msg:'" + message +"'}]");

sendMsg(jsonObj.toString());

}

public void sendMsg(String content) throws IOException{

HttpServletResponse response = ServletActionContext.getResponse();

response.setCharacterEncoding("UTF-8");

response.getWriter().write(content);

}

json-lib-2.2.3-jdk15.jar (145
KB)

ezmorph-1.0.6.jar (84.5
KB)

jquery.js.rar (28.4
KB)

json2.js.rar (5.2
KB)

ajax-jquery.js.rar (441
Bytes)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐