一, ajax方式

(一)controller中

1. 定义AjaxResponse类 成员有: status , message, data.  其中 status是成功或失败状态, message是给出的相关信息, data是传递过来的数据

2. 定义返回AjaxResponse对象的controller:

一个实例:

     @RequestMapping("createOrder")
@ResponseBody
public AjaxResponse createOrder(String subData, String travellerDetail) {
AjaxResponse response = new AjaxResponse();
response.setStatus(AjaxResponseStatus.FAILED); //先设置状态为失败
String operatorName = getOperator().getOperatorName();
DisneyOrderCreateVo vo = JSON.parseObject(subData, DisneyOrderCreateVo.class);
vo.setOperator(operatorName);
List<TravellerDetail> travellerDetails = new ArrayList<TravellerDetail>();
travellerDetails = JSON.parseArray(travellerDetail, TravellerDetail.class);
try {
orderService.createDsnOrder(vo, travellerDetails);
} catch (Exception e) {
logger.debug(e.getMessage(), e);
response.setMessage(e.getMessage()); // 将失败信息返回到页面
return response;
}
response.setStatus(AjaxResponseStatus.SUCCESS); // 将状态设置为成功
return response;
}

3. 在js中接收controller中返回的AjaxResponse 对象

一个实例:

         $.ajax({
url : basepath + "/disney/order/createOrder",
method : 'POST',
data : {"subData":JSON.stringify(subData) , "travellerDetail":JSON.stringify(travellerDetail)}, //将对象序列化为json对象
dataType : "json", //预期服务器返回的数据类型。如果不指定,jQuery 将自动根据 HTTP 包 MIME 信息来智能判断
success:function(res){ // 成功后进行的操作 返回200
if(res && res.status==="SUCCESS"){
createOrderPopwin.close();
window.location.href=basepath+"/disney/order/orderList";
}else if(res && res.status === "FAILED"){
var errorMsg = res.message;
alert(errorMsg);
}
},
error:function(res){ } //失败后进行的操作 除200外的返回状态都执行error
});

-------补充知识:----------

简单的说Ajax请求通过XMLHttpRequest对象发送请求,该对象有四个状态(readyState): 
0-未初始化 
1-正在初始化 
2-发送数据 
3-正在发送数据 
4-完成 
当XMLHttpRequest.readyState为4时,表示请求已经完成可以得到响应结果。当然success和error方法还是根据响应状态码来触发。当XMLHttpRequest.status为200的时候,表示响应成功,此时触发success().其他状态码则触发error(). 
Jquery的$.ajax()函数只是封装了ajax请求,本质上还是通过JS XMLHttpRequest内置对象来处理的。 )

----------------------------------------------

二, 在controller中的@RequestMapping方法中通过参数Model 来传递数据

三, 在controller中的@RequestMapping方法中通过返回值Map来传递数据

四, 在controller中通过ModelAndView 来传递参数,

一个实例:

    @RequestMapping("/tourVisitorList")
public ModelAndView tourVisitorList(@RequestParam(required = true) String tourGroupMark) {
tourGroupMark = StringUtils.trimToNull(tourGroupMark);
ModelAndView mav = new ModelAndView("opPage/jn/signUp/tour_visitor_list");
tourGroupMark = StringUtils.trimToNull(tourGroupMark);
Map<String, Object> idSaleMap = new HashMap<>();
Map<String, Object> idCusMap = new HashMap<>();
mav.addObject("idSaleMap", idSaleMap);
mav.addObject("idCusMap", idCusMap);
return mav;
}

其中, ModelAndView mav = new ModelAndView("opPage/jn/signUp/tour_visitor_list"); 设置返回的页面.   mav.addObject("xxx",XXX); 设置传递的数值.

此传递的数值在freemark中渲染, 不需要@responseBody.

web开发-服务器Controller到前端中的数据传递的更多相关文章

  1. ASP.NET MVC3中Controller与View之间的数据传递总结

    一.  Controller向View传递数据 1.       使用ViewData传递数据 我们在Controller中定义如下: ViewData["Message_ViewData& ...

  2. ASP.NET MVC3中Controller与View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据,因此,熟练.灵活的掌握这两层之间的数据传递方法就非常重要.本文从两个方面进行探讨: 一.  Controller向Vie ...

  3. Asp.net MVC中 Controller 与 View之间的数据传递

    在ASP.NET MVC中,经常会在Controller与View之间传递数据 1.Controller向View中传递数据 (1)使用ViewData["user"] (2)使用 ...

  4. MVC中Controller与View之间的数据传递

    一.Controller向View传递数据 Controller向View传递数据有3种形式: 通过ViewData传递 在Controller里面的Action方法中定义ViewData,并且赋值, ...

  5. web开发-前端到服务器Controller中的数据传递

    一, ajax方式 1. ajax获取页面中的数据,包括表单中的数据, 然后封装成对象,数组, 字符串, 或其他基本类型的数据. 2. 将封装得到的数据通过ajax传递到controller中(注:在 ...

  6. 将Controller中的数据传递到View中显示

    如何将Controller 中的数据传送到View 步骤: (1)要有数据,如果要用到对象可以在Model 中定义对应的类 (2)要有装数据的容器: System.Text.StringBuilder ...

  7. 剖析 Rails 3 MVC 中的数据传递

    引用链接:https://www.ibm.com/developerworks/cn/web/1108_linhx_rails3mvc/ 如果读者已经开发过基于 Rails 的应用,但对其 MVC 间 ...

  8. 后端list集合中的数据传递到前台HTML中显示(表格形式)

    关键字:web项目中前后台数据传递问题 在学习web项目的过程中,我们肯定会遇到前后台数据交换问题.这个问题我也思考了很久,今天借此总结一下.由于博主水平有限,如有不当之处,还请大家多多指正,,废话不 ...

  9. springmvc中的数据传递

    import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; impo ...

随机推荐

  1. 四十条测试你是不是合格的PHP程序员

    四十条测试你是否合格的PHP程序员,不官方,也不权威,但很给力.超过三条就不合格了.超过五条就得好好反省下自己的不足了. 1. 不会利用如phpDoc这样的工具来恰当地注释你的代码 2. 对优秀的集成 ...

  2. iOS - Swift 与 C 语言交互编程

    前言 作为一种可与 Objective-C 相互调用的语言,Swift 也具有一些与 C 语言的类型和特性,如果你的代码有需要,Swift 也提供了和常见的 C 代码结构混合编程的编程方式. 1.基本 ...

  3. 关于jQuery的小知识点

    jQuery 简介 jQuery 库可以通过一行简单的标记被添加到网页中. jQuery 库 - 特性 jQuery 是一个 JavaScript 函数库. jQuery 库包含以下特性: HTML ...

  4. iOS开发之.pch文件初识

    pch全称是“precompiled header”,即预编译头文件,自Xcode6诞生之日起,便在Supporting Files文件下消失多年.说起苹果对pch的爱恨情仇,其分析pch的作用便不言 ...

  5. golang json

    1.Go语言的JSON 库 Go语言自带的JSON转换库为 encoding/json 1.1)其中把对象转换为JSON的方法(函数)为 json.Marshal(),其函数原型如下 func Mar ...

  6. 转:不是技术牛人,如何拿到国内IT巨头的Offer

    转自:http://blog.csdn.net/lsldd/article/details/13506263 不久前,byvoid面阿里星计划的面试结果截图泄漏,引起无数IT屌丝的羡慕敬仰.看看这些牛 ...

  7. eclipse里maven install时,报错提示jdk为无效的目标版本:1.7

    http://blog.csdn.net/wabiaozia/article/details/51733372 ************************************ 报错提示: [ ...

  8. Hello,Akka

    版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明http://www.blogbus.com/dreamhead-logs/235916459.html 只要稍微了解过一些Scala, ...

  9. C# Socket编程(5)使用TCP Socket

    TCP 协议(Transmission Control Protocol,传输控制协议)是TCP/IP体系中面向连接(connection oriented)的传输层(transport layer) ...

  10. sap 中怎样把非限制库存转为销售订单库存?

    把非限制库存转为销售订单库存: MB1B 移动类型413 把销售订单库存转为非限制库存: MB1B移动类型411 E 切记!