今天遇到这样一个问题我需要获得一个action执行方法后的一个返回值。
先讲下大概思路,其实很简单,就是用Jquery的$.post来执行ajax
jQuery.post(url,[data],[callback],[type])
url:执行的action的url
[data]:传递过去的参数,假如在表单中,可以使用$("form").serialize()把form中的参数全部提交
[callback]:回调函数,这个用来获取返回值,并把返回值当做参数。例如function(responseText){}
type:可以规定返回的类型,可以返回html,text,xml,json等
我讲一下具体的解决办法,
Action:
public ActionForward doGetEditConsumeCount(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response)
throws Exception {
String orgIdStr = request.getParameter("orgId");
int orgId = Integer.parseInt(orgIdStr);
MasOrgInfo organ = organService.getOrganById(orgId);
String consumeType = request.getParameter("consumeType"); //消费类型
String consumeDateStart = request.getParameter("consumeDateStart"); //消费日期起始
String consumeDateEnd = request.getParameter("consumeDateEnd"); //消费日期截止
String prStart = request.getParameter("priceStart"); //实际价格原始价格
Float priceStart = null;
if (!prStart.equals("")) {
priceStart = Float.parseFloat(prStart);
}
String prEnd = request.getParameter("priceEnd"); //实际价格新价格
Float priceEnd = null;
if (!prEnd.equals("")) {
priceEnd = Float.parseFloat(prEnd);
}
String type = request.getParameter("type"); //专业类型
String packageName = request.getParameter("packageName"); //专业或包
String combo = request.getParameter("combo"); //套餐
Integer comsumeNum=organService.getUpdateConsumeNum(orgId, type, packageName, combo, consumeType, consumeDateStart, consumeDateEnd, priceStart);
Long peopleNum=organService.getUpdateConsumePeopleNum(orgId, type, packageName, combo, consumeType, consumeDateStart, consumeDateEnd, priceStart);
String strNum="\n 即将修改"+comsumeNum+"条记录,共计"+peopleNum+"个账号";
response.setContentType("text/xml;charset=utf-8"); //更改字符编码
response.getWriter().println(strNum); //这句话是把结果返回(这个是关键)
return mapping.findForward(""); //这里返回空就好
}
jsp页面的js代码如下:
function update() {
if($('#type').val()!=null&&$('#type').val){
$.post("${basepath}/organ.do?o=doGetEditConsumeCount&orgId=${organ.id}&pageNum=1", $("form").serialize(),
//这里的resonseText就是action中的strNum了,这个名字可以随便起的
function(responseText){
var msg = responseText+"\n您真的确定要批量修改吗?\n\n请确认!";
if (confirm(msg)==true){
theform.action = "${basepath}/organ.do?o=doEditLotConsumes&orgId=${organ.id}";
theform.submit();
return true;
}else{
return false;
}
}
, "text");
}else{
alert("提示:请将原始价格填入“实际单价起始价格框”,新价格填入“实际单价截止价格框”");
}
}
上面的代码我其实是在回调函数里面又写了一些东西,其实可以简化为这个样子
$.post("${basepath}/organ.do?o=doGetEditConsumeCount&orgId=${organ.id}&pageNum=1", $("form").serialize(),function(responseText){alert(responseText)},"text");
分享到:
相关推荐
### JS弹出窗口返回值详解 #### 一、前言 在前端开发中,经常会遇到需要弹出新窗口并从该窗口返回数据的情况。本文将详细介绍`window.opener`对象的使用方法及其应用场景,帮助开发者更好地理解如何实现弹窗与主...
JS当中不能接收ModelAndView的返回值吗?一定要在JSP页面中才能接收吗? 1 方法一 【有效】 可以的,跟el表达式访问方式一样。 示例代码,一个数据展示请求的Action中存入一个userId: @RequestMapping(value="/...
"JavaScript in Action.zip"这个压缩包很可能包含了全面讲解JavaScript技术的资源,旨在帮助学习者从入门到精通掌握这种语言。 JavaScript的核心概念包括变量、数据类型、控制结构(如条件语句和循环)、函数、对象...
在上述场景中,开发者遇到了如何从ymPrompt 弹出的子窗口获取返回值并根据该值决定是否刷新父窗口的问题。通过深入研究ymPrompt的API,找到了`doHandler`方法来解决这个问题。 `doHandler`方法是ymPrompt组件提供的...
客户端(通常是JavaScript)可以通过AJAX请求获取JSON数据,并解析成JavaScript对象。例如,使用jQuery的$.getJSON方法: ```javascript $.getJSON("/myAction", function(data) { alert("Message: " + data....
本文将详细讲解如何利用 JavaScript 实现弹出窗口并获取其返回值,以及 `window.opener` 的用法。 首先,我们来看一个简单的实例。假设我们有两个HTML页面,`a.html` 和 `b.html`。在 `a.html` 中有一个链接,当...
一个action可以有返回值,通常这个返回值是一个Promise,可以在组件中通过.then()来获取action的最终结果。 Vuex还提供了getter的概念,它可以被认为是一个store中的计算属性,当依赖的状态发生了变化时,getter的...
2. **JavaScript动态修改Action属性**:通过JavaScript可以动态修改表单的`action`属性,从而改变表单提交的目标。这里的`FormSubmit`函数实现了这一功能。 ```javascript function FormSubmit() { document....
onSubmit事件是指当用户单击了表单中的“提交”按钮时,调用该事件并得到一个返回确认值,返回值为“true”提交数据,返回值为“false”拒绝提交数据。 在本文档的结尾,我们提供了一个表单登陆验证代码片段,用于...
纯JavaScript实现动态设置`action`属性,可以通过`document.getElementById`获取表单元素,然后直接访问或修改其`action`属性。以下是一些示例: ```javascript function test1() { // 获取表单元素 var form = ...
* JavaScript 的函数是第一类对象,可以作为参数传递,也可以作为返回值。 * 函数可以使用 function 关键字声明,函数名可以包含字母、数字和下划线。 * 函数可以使用参数,参数可以是数字、字符串、数组、对象等...
根据给定的信息,本文将详细探讨C#与JavaScript之间的相互调用方法,主要涉及四个方面的内容:如何在JavaScript中访问C#函数、如何在JavaScript中访问C#变量、如何在C#中访问JavaScript已有的变量以及如何在C#中访问...
这里的`<constant>`标签开启了JSON支持,`<package>`中的`<action>`定义了一个以"Json"结尾的Action,它的结果类型设置为"json",意味着这个Action的返回值将被转化为JSON。 接下来,我们需要在Action类中实现返回...
<form action="url" method="post" onSubmit=""> <!-- 表单元素 --> ``` - **数组对象**:创建和操作数组的方法: - **声明数组**: ```javascript var arr = new Array(); ``` - **遍历数组**: ```...
- **Action的返回值**:Action的返回值可以是简单的字符串,也可以是一个包含数据的对象。Struts2的JSON插件会自动处理这些对象并将其转换为JSON。 - **使用ModelDriven接口**:如果Action实现了`ModelDriven`接口...
五、获取Action数据到页面展示 当Action方法返回值不是void或forward时,可通过AJAX调用来获取数据。在页面上,`callAjax`函数的参数包括URL、异步/同步标志、Action的包名和是否显示返回值作为提示信息。 六、树型...
在struts.xml配置文件中启用JSON插件,并在Action配置中指定`<result type="json">`,这样Struts2会自动将Action的返回值转换为JSON格式。 5. **Ajax请求**: ExtJS使用Ajax请求与服务器进行异步通信。TreePanel通常...
结果类型设置为`json`,意味着Struts将自动把Action方法的返回值转换成JSON格式并返回给前端。 前端JavaScript代码可以使用jQuery或其他库来发送Ajax请求。例如,使用jQuery的`$.ajax`或`$.getJSON`方法: ```...
在JavaScript中,通常我们会使用`document.forms["formName"].elements["elementName"].value`来获取表单元素的值,然后进行校验。例如,验证用户名是否为“admin”: ```javascript function check() { if ...
1. **配置Struts2**:首先,需要在Struts2的配置文件`struts.xml`中定义Action,设置返回类型为"json",这样Struts2就会自动将Action的返回值转化为JSON格式。 ```xml <action name="ajaxAction" class=...