springmvc modelview 返回数据与页面交互处理
2017-06-26 14:52
459 查看
springmvc controller层在与前端页面进行数据交互时,根据页面处理需要对modelview响应数据做处理,
举例说明:
对应方式1 对应某页面page发起请求,响应json对象数据到page页面,page进行解析处理:
result为controller的响应数据,click()提交请求响应成功后对响应数据进行解析:
对应方式2:
直接打开新窗口或重定向到某页面,不与页面进行交互,一般用于异常场景,响应数据不需要前端解析直接对用户进行提示。
举例说明:
@RequestMapping(params = "action=jumpEduproduct") public void getEduProduct(HttpServletRequest request, HttpServletResponse response) throws IOException { logger.info("action=jumpEduproduct=====>"); Map<String,String> paramsMap = new HashMap<String, String>(); String jsonStr = ""; JSONObject jsonObject = new JSONObject(); response.setHeader("Content-type", "text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8"); // ====处理方式1: if (StringUtils.isBlank(userId)) { logger.error("error userid!"); jsonObject.put("ret",-1); jsonObject.put("msg", "用户ID不能为空!"); response.getWriter().print(jsonObject.toString()); return; } if (resq.getRet() != 0){ jsonObject.put("msg","处理异常, 返回错误数据!"); jsonObject.put("ret",resq.getRet()); jsonObject.put("msg", resq.getMsg()); response.getWriter().print(jsonObject.toString()); return; } ........ // ====处理方式2: YdEduResp resq = JSON.parseObject(jsonStr, YdEduResp.class); if ((appFlag == 0 || appFlag == 1)){ if (resq.getRet() == 0){ directUrl = resq.getCallbackurl() + "&accesstoken=" + resq.getAccesstoken() + "&random=" + Math.random(); System.out.println("success direct:" + directUrl); response.getWriter().write("<script>window.location.href=\'" + directUrl + "\';</script>"); // response.getWriter().write("<script>window.open(\'" + directUrl + "\','_blank')</script>"); return; }else{ directUrl="http://www.baidu.com"; System.out.println("==>fail direct2:" + directUrl+"__fail reason:"+resq.getMsg()); response.getWriter().write("<script>window.alert(\'接口响应异常,返回XXX首页!\');window.location.href=\'" + directUrl + "\';</script>"); return; }
对应方式1 对应某页面page发起请求,响应json对象数据到page页面,page进行解析处理:
page页面先发起ajax请求:
$('.govdiv').click(function(){ // $.getScript( $(this).attr('data-url') ); $.ajax({ url : $(this).attr('data-url'), type : "POST", data : JSON.stringify(data), //转JSON字符串 dataType: 'json', contentType:'application/json;charset=UTF-8', success : function(result) { dispatch(result); } });
result为controller的响应数据,click()提交请求响应成功后对响应数据进行解析:
function dispatch(data){ if(data.ret!=0) alert(data.msg); else{ if (data.accessToken != null && data.accessToken != ""){ // window.location.href = data.callbackurl +"&accesstoken=" + data.accesstoken+"&tmp="+Math.random(); window.open(data.callbackurl +"&accesstoken=" + data.accessToken+"&tmp="+Math.random()); }else{ // window.location.href = dat 4000 a.callbackurl; window.open(data.callbackurl); } }
对应方式2:
直接打开新窗口或重定向到某页面,不与页面进行交互,一般用于异常场景,响应数据不需要前端解析直接对用户进行提示。
相关文章推荐
- 2016-12-03(两种处理JSON返回页面的方式、分页,ModelAndView和Model的区别,<C:forEach>注意)
- 【SpringMVC】SpringMVC系列9之Model数据返回到View
- iOS webView与H5的交互(返回页面的处理)
- Django项目中model的数据处理以及页面交互
- Delegate 类 概念 与MVC模式不同,model/view结构没有用于与用户交互的完全独立的组件。一般来讲, view负责把数据展示给用户,也处理用户的输入。为了获得更多的灵性性,交互通过d
- MVC教程:MVC---View处理页面;Control处理业务逻辑;Model处理数据
- SpringMVC中返回数据Model,ModelAndView,ModelMap的区别
- Django项目中model的数据处理以及页面交互方法
- iOS webView与H5的交互(返回页面的处理)
- iOS webView与H5的交互(返回页面的处理)
- MVC view页面需要多个model,复杂网页的处理
- ASP.NET - 自定义控件处理页面事件(控件与页面数据交互)的方法
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 jsp页面
- SpringMVC返回JSON数据406错误处理
- SpringMVC中JSP取不到ModelAndView,ModelMap的数据原因
- easyUI form提交与springMVC交互时服务端返回的错误处理
- jquery与后台进行数据交互--前台发单一数据对象,后台返回一个json字符串 serlet配置页面
- SpringMVC返回页面数据
- Spring控制器响应(action)请求的几种处理方式,如返回JSON,MODEL MODELVIEW,STRING
- iframe实现无刷新上传文件并在当前页面返回数据php处理方式