本文在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);
}
分享到:
相关推荐
整合Struts2和jQuery可以实现高效的前端与后端数据交互,尤其是通过JSON(JavaScript Object Notation)这种轻量级的数据交换格式,能够提升Web应用的性能和用户体验。 在Struts2中,我们可以创建一个Action类来...
在这个"struts2+jquery执行ajax并返回json类型数据"的示例中,我们将探讨如何通过Ajax技术在后台Struts2框架与前端jQuery库之间交换JSON格式的数据。 首先,Struts2是一个强大的MVC(Model-View-Controller)框架,...
在Struts2中,我们可以配置Action类来处理Ajax请求,并以JSON格式返回数据。 以下是一个简单的示例步骤: 1. **前端设置**: 在HTML页面中,使用jQuery发起Ajax请求。例如: ```javascript $.ajax({ url: ...
在前端,我们可以使用JQuery的AJAX方法来调用Struts2 Action并接收返回的JSON数据。例如,在`index.jsp`中: ```html <!DOCTYPE html> <script src="https://code.jquery.com/jquery-3.6.0.min.js"></script> </...
在本例中,Struts2的Action将处理jQuery发起的Ajax请求,并返回JSON格式的数据。 **JSON (JavaScript Object Notation)** 是一种轻量级的数据交换格式,易于人阅读和编写,同时也易于机器解析和生成。在Ajax请求中...
1.访问方法http://127.0.0.1:8080/Struts2JQueryJson/ http://127.0.0.1:8080/Struts2JQueryJson/jsontest!returnMap.action 2.程序为strutsMVC的小例子,实现了通过一个url调用返回一个json格式的数据,
综上所述,Struts2与JSON的整合不仅提升了Web应用程序的性能和用户体验,还简化了开发者的工作,使他们能够更加专注于业务逻辑的实现,而不是纠结于数据格式的转换。通过遵循上述步骤,开发者可以有效地在Struts2...
在这个例子中,我们首先需要设置一个Struts2的Action类,这个类会处理来自客户端的请求,并返回JSON格式的数据。Action类可能包含一个方法,该方法返回一个封装了数据的Java对象,并且需要在Struts2的配置文件中声明...
- **前端请求**:jQuery的$.ajax()方法被调用,指定URL为Struts2的Action,设置type为'POST'或'GET',dataType为'json',数据以JSON格式通过data参数传递。 - **Struts2处理**:Struts2框架接收到请求后,根据配置...
这种配置使得当用户发起Ajax请求时,Struts2会自动将Java对象转换为JSON格式的数据返回给前端。 3. **前端页面编写** 前端页面使用了jQuery库来发起Ajax请求。首先引入jQuery库(这里使用的是1.2.6版本),然后...
`@Action`注解定义了Action的URL,`@Result`注解设置了结果类型为`json`,这使得Struts2会自动将Action的属性转换为JSON格式并返回。 **四、Struts配置** 最后,我们需要在`struts.xml`配置文件中声明我们的Action...
Struts2 负责请求调度,Spring2 管理业务逻辑和数据访问,iBatis2 执行SQL查询,jQuery 使用Ajax技术进行页面更新,而JSON则作为数据传输格式。这样的组合提供了高效、灵活且易于维护的解决方案,提高了Web应用的...
在Struts2 JSON应用中,jQuery常用来发送AJAX请求并处理返回的JSON数据。 5. **[原创]Struts2 + JQuery + JSON实现AJAX - Struts - Java - ITeye论坛.mht**:这个文件可能是一个论坛帖子,详细介绍了如何结合Struts...
Struts2JQueryJson是一个基于Struts2框架与jQuery库,结合JSON(JavaScript Object Notation)数据格式,实现Ajax异步加载对象数据的技术方案。在Web应用开发中,这种技术可以提升用户体验,因为它允许页面部分内容...
这样,当你在jQuery的AJAX请求中指定URL为`yourAction.action`时,Struts2会返回JSON格式的`data`对象。 3. **数据绑定和处理** 在jQuery的AJAX回调函数中,你可以接收到JSON响应,并将其数据绑定到DOM元素上。...
例如,调用`/json/returnMsg.action`将返回一个包含`message`属性的JSON对象,调用`/json/returnUser.action`将返回`userInfo`对象的JSON表示,而`/json/returnList.action`则返回`userInfosList`列表的JSON。...
这里,`getJsonResult`方法将被JSON插件调用,返回一个包含数据的Map,这些数据将在JSON响应中发送到浏览器。 为了使浏览器能够解析JSON,我们需要在JSP或HTML页面中使用JavaScript。可以使用JSON.parse()方法或者...
在省市联动中,Struts2作为后端控制器,处理前端发送的Ajax请求,从数据库中查询出指定省份的城市数据,然后将这些数据以JSON或其他合适格式返回给前端。 实现这个功能的具体步骤如下: 1. **前端部分**: - 创建...
7. **JQuery/AJAX调用**:在前端,可以使用JQuery的AJAX方法向服务器发送请求,获取Struts2 Action返回的JSON数据,然后动态更新DOM元素。 8. **安全性考虑**:在使用JSON和Struts2交互时,需要注意防止JSON ...
总结来说,JQuery通过`$.post`方法发起Ajax请求,Struts2框架通过配置和Action处理请求,并利用JSON插件将Java对象转换为JSON格式,最后将结果返回给客户端。客户端的回调函数接收到JSON数据后,可以解析并更新页面...