本文在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.访问方法http://127.0.0.1:8080/Struts2JQueryJson/ http://127.0.0.1:8080/Struts2JQueryJson/jsontest!returnMap.action 2.程序为strutsMVC的小例子,实现了通过一个url调用返回一个json格式的数据,
通过jQuery获取表单数据,封装到JSON对象,再把JSON对象转为字符串传到Action,接到数据后,再把JSON字符串变为JSON对象,通过JSON的键,取出数据,通过调用数据库返回数据封装在JSON,打印出数据,然后在客户端接收...
JQuery发起ajax请求Struts2,并操作JSON数据的例子。去除了所有的jar,否则文件太大。详见http://blog.csdn.net/littleqiang520中的博文。
NULL 博文链接:https://lianxia114112.iteye.com/blog/1195805
1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、com.morningstar.utility.WSUtility为调用WebService的客户端代码,在调用这个WebService返回...
Struts+Jquery+Ajax+Json应用实例,前端引入jquery,后台使用struts框架。前端js调用后台action,并将后台返回的json数据进行解析,设置web页面
JQuery1.4.2+Struts2.1.8+JSON0.34+Spring2.5.6+Hibernate3.5+XFire1.2.6整合实例(已上传) 1、JSON0.34使用的是struts2附带的struts2-json-plugin-2.1.8.1.jar 2、db是mysql,名字为test,用户名root,密码空 3、...
基于 MVC 结构的 J2EE 应用服务器框架 —— apache ...客户端 jQuery ajax 提交表单至 struts2 的 action,action 调用 model,model 生成json返回至 action,再由 action 返回 json 至客户端,并由 jQuery 解析。
3.Ajax无刷新异步调用Struts2,返回Json数据,以用户注册为例。 4.在服务端分页查询功能,优点:实时性:跳页才查询。数据量小:只加载当前页的记录进行显示。 5.单数据源配置(兼容Tomcat和Weblogic)。 6.Hibernate...
Spring+Struts+Hibernate+Jquery(AJAX)实现的省份与城市级联效果 原理:通过ajax调用后端struts的action,将返回的JSON对象数组解析载入页面。
主要是用到jquery的ajax,java中的hibernate4的调用mysql数据和struts2地址重定向,并把数据转换成json数据,经过html页面中的javascript调用后台数据,有添加,修改,删除,查询等简单功能,适用于有ajax初学者,...
Struts2、JDBC+连接池(dbcp)、jQuery+Ajax、javamail、log4j、junit、MySQL 系统架构: 表现层:jQuery+Ajax、Struts2标签+OGNL 控制层:Struts2控制器,Action组件 业务层:JavaBean组件、javamail 数据访问层...
2> basePath/web/moduleName/gotoXxx.action (无需调用Service,直接跳转) 包括jQuery的Ajax方式和非Ajax方式; 包括表单提交; 参数设值的方式: 1> URL参数: basePath/web/moduleName/*_*.action?entity....
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
弃用了struts,用spring mvc框架做了几个项目,感觉都不错,而且使用了注解方式,可以省掉一大堆配置文件。本文主要介绍使用注解方式配置的spring mvc,之前写的spring3.0 mvc和rest小例子没有介绍到数据层的内容,...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...
\contentsline {chapter}{Contents}{2}{section*.1} {1}Java基础}{17}{chapter.1} {1.1}基本语法}{17}{section.1.1} {1.2}数字表达方式}{17}{section.1.2} {1.3}补码}{19}{section.1.3} {1.3.1}总结}{23}{...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
5个目标文件,演示Address EJB的实现,创建一个EJB测试客户端,得到名字上下文,查询jndi名,通过强制转型得到Home接口,getInitialContext()函数返回一个经过初始化的上下文,用client的getHome()函数调用Home接口...
JCaptcha4Struts2 是一个 Struts2的插件,用来增加验证码的支持,使用时只需要用一个 JSP 标签 (<jcaptcha:image label="Type the text "/> ) 即可,直接在 struts.xml 中进行配置,使用强大的 JCaptcha来生成验证码...