`

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

    博客分类:
  • ajax
阅读更多
本文在ajax中调用struts2 action ,查询数据库,然后返回字符串,演示返回script,text,json类型的数据的用法


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

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格式

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);    
    }    




分享到:
评论
1 楼 hardwin 2009-11-10  
试了一下,返回的如果是纯文本,dataType 设为text,html,script都可以。而且dataType参数不设置也可以,默认是文本。在返回纯文本的情况下,最好不用script类型,结果是出的来,但是IE下会报一个错误:提示你返回的那个字符串未定义
我在找原因和解决办法,找到了再来补上

相关推荐

    Struts2整合jquery利用json与后台交互

    整合Struts2和jQuery可以实现高效的前端与后端数据交互,尤其是通过JSON(JavaScript Object Notation)这种轻量级的数据交换格式,能够提升Web应用的性能和用户体验。 在Struts2中,我们可以创建一个Action类来...

    struts2+jquery执行ajax并返回json类型数据(源码)

    在这个"struts2+jquery执行ajax并返回json类型数据"的示例中,我们将探讨如何通过Ajax技术在后台Struts2框架与前端jQuery库之间交换JSON格式的数据。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,...

    JQuery发送Ajax请求Struts2,并返回JSON的例子

    在Struts2中,我们可以配置Action类来处理Ajax请求,并以JSON格式返回数据。 以下是一个简单的示例步骤: 1. **前端设置**: 在HTML页面中,使用jQuery发起Ajax请求。例如: ```javascript $.ajax({ url: ...

    Struts2.x配合JSON和JQuery使用的简单实例

    在前端,我们可以使用JQuery的AJAX方法来调用Struts2 Action并接收返回的JSON数据。例如,在`index.jsp`中: ```html &lt;!DOCTYPE html&gt; &lt;script src="https://code.jquery.com/jquery-3.6.0.min.js"&gt;&lt;/script&gt; &lt;/...

    JQuery发起ajax请求Struts2,并操作JSON数据的例子

    在本例中,Struts2的Action将处理jQuery发起的Ajax请求,并返回JSON格式的数据。 **JSON (JavaScript Object Notation)** 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Ajax请求中...

    struts2MVC-json

    1.访问方法http://127.0.0.1:8080/Struts2JQueryJson/ http://127.0.0.1:8080/Struts2JQueryJson/jsontest!returnMap.action 2.程序为strutsMVC的小例子,实现了通过一个url调用返回一个json格式的数据,

    struts2与json整合

    综上所述,Struts2与JSON的整合不仅提升了Web应用程序的性能和用户体验,还简化了开发者的工作,使他们能够更加专注于业务逻辑的实现,而不是纠结于数据格式的转换。通过遵循上述步骤,开发者可以有效地在Struts2...

    一个简单的struts2+json+jquery 交互的例子

    在这个例子中,我们首先需要设置一个Struts2的Action类,这个类会处理来自客户端的请求,并返回JSON格式的数据。Action类可能包含一个方法,该方法返回一个封装了数据的Java对象,并且需要在Struts2的配置文件中声明...

    struts2+json+jquery实现ajax数据的存取

    - **前端请求**:jQuery的$.ajax()方法被调用,指定URL为Struts2的Action,设置type为'POST'或'GET',dataType为'json',数据以JSON格式通过data参数传递。 - **Struts2处理**:Struts2框架接收到请求后,根据配置...

    Struts2 + jQuery+JSON 实现ajax

    这种配置使得当用户发起Ajax请求时,Struts2会自动将Java对象转换为JSON格式的数据返回给前端。 3. **前端页面编写** 前端页面使用了jQuery库来发起Ajax请求。首先引入jQuery库(这里使用的是1.2.6版本),然后...

    Struts2 ajax json使用介绍

    `@Action`注解定义了Action的URL,`@Result`注解设置了结果类型为`json`,这使得Struts2会自动将Action的属性转换为JSON格式并返回。 **四、Struts配置** 最后,我们需要在`struts.xml`配置文件中声明我们的Action...

    struts2 spring2 ibatis2 jquery json 页面无刷新分页

    Struts2 负责请求调度,Spring2 管理业务逻辑和数据访问,iBatis2 执行SQL查询,jQuery 使用Ajax技术进行页面更新,而JSON则作为数据传输格式。这样的组合提供了高效、灵活且易于维护的解决方案,提高了Web应用的...

    struts2 json

    在Struts2 JSON应用中,jQuery常用来发送AJAX请求并处理返回的JSON数据。 5. **[原创]Struts2 + JQuery + JSON实现AJAX - Struts - Java - ITeye论坛.mht**:这个文件可能是一个论坛帖子,详细介绍了如何结合Struts...

    Struts2JQueryJson

    Struts2JQueryJson是一个基于Struts2框架与jQuery库,结合JSON(JavaScript Object Notation)数据格式,实现Ajax异步加载对象数据的技术方案。在Web应用开发中,这种技术可以提升用户体验,因为它允许页面部分内容...

    Jquery+Struts2+JSON处理

    这样,当你在jQuery的AJAX请求中指定URL为`yourAction.action`时,Struts2会返回JSON格式的`data`对象。 3. **数据绑定和处理** 在jQuery的AJAX回调函数中,你可以接收到JSON响应,并将其数据绑定到DOM元素上。...

    Struts2返回JSON对象.doc

    例如,调用`/json/returnMsg.action`将返回一个包含`message`属性的JSON对象,调用`/json/returnUser.action`将返回`userInfo`对象的JSON表示,而`/json/returnList.action`则返回`userInfosList`列表的JSON。...

    struts2.3.20生成返回json 浏览器解析json

    这里,`getJsonResult`方法将被JSON插件调用,返回一个包含数据的Map,这些数据将在JSON响应中发送到浏览器。 为了使浏览器能够解析JSON,我们需要在JSP或HTML页面中使用JavaScript。可以使用JSON.parse()方法或者...

    省市联动jquery+struts2

    在省市联动中,Struts2作为后端控制器,处理前端发送的Ajax请求,从数据库中查询出指定省份的城市数据,然后将这些数据以JSON或其他合适格式返回给前端。 实现这个功能的具体步骤如下: 1. **前端部分**: - 创建...

    json+struts2的jar

    7. **JQuery/AJAX调用**:在前端,可以使用JQuery的AJAX方法向服务器发送请求,获取Struts2 Action返回的JSON数据,然后动态更新DOM元素。 8. **安全性考虑**:在使用JSON和Struts2交互时,需要注意防止JSON ...

    JQuery,JSON,Struts2实现Ajax异步请求

    总结来说,JQuery通过`$.post`方法发起Ajax请求,Struts2框架通过配置和Action处理请求,并利用JSON插件将Java对象转换为JSON格式,最后将结果返回给客户端。客户端的回调函数接收到JSON数据后,可以解析并更新页面...

Global site tag (gtag.js) - Google Analytics