springmvc处理ajax请求
来源:互联网 发布:手机淘宝怎么上门取件 编辑:程序博客网 时间:2024/04/29 21:27
转载:http://www.cnblogs.com/tingbogiu/p/5796199.html
1.controller将数据封装成json格式返回页面
@RequestMapping("/dataList") public void datalist(CsoftCunstomerPage page,HttpServletResponse response) throws Exception{ List<CsoftCunstomer> dataList = csoftCunstomerService.queryByList(page); //设置页面数据 Map<String,Object> jsonMap = new HashMap<String,Object>(); jsonMap.put("total",page.getPager().getRowCount()); jsonMap.put("rows", dataList); try { //设置页面不缓存 response.setContentType("application/json"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setCharacterEncoding("UTF-8"); PrintWriter out= null; out = response.getWriter(); out.print(JSONUtil.toJSONString(jsonMap)); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } }
2.ajax提交数据以json格式到controller中
例一:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html > <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <!--<script type="text/javascript" src="../static/js/jquery-1.7.2.min.js"></script>--> <!--JS的地址可以写成下面这样,将来部署的时候,这些静态文件就可以单独部署了,不依赖于后台路径--> <script type="text/javascript" src="http://localhost:8080/sshdemo/static/js/jquery-1.7.2.min.js"></script> <script type="text/javascript"> $(document).ready(function() { ajaxRequest(); }); function ajaxRequest() { $.ajax({ url: "http://localhost:8080/sshdemo/hello/ajax", type: "POST", dataType: "json", data: { "a": 1, "b": 2, "c": 3 }, async: false, success: function(data) { alert("success"); $.each(data, function(index, element) { alert(element.a); alert(element.b); alert(element.c); }); }, error: function() { alert("error"); } }); } </script> </head> <body> <div>Hello World!</div> </body></html>
package com.xbs.ready.ssh.controller;import com.alibaba.fastjson.JSON;import java.io.IOException;import java.io.PrintWriter;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import java.util.logging.Level;import java.util.logging.Logger;import javax.servlet.http.HttpServletRequest;import javax.servlet.http.HttpServletResponse;import org.springframework.stereotype.Controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RequestMethod;/** * * @author xbs */@Controller@RequestMapping("hello")public class HelloController { /** * ajax请求不需要返回页面,只需要得到response中的数据即可,所以方法签名为void即可 * * @param request * @param response */ @RequestMapping(value = "ajax", method = RequestMethod.POST) public void ajaxDatas(HttpServletRequest request, HttpServletResponse response) { String jsonResult = getJSONString(request); renderData(response, jsonResult); } private String getJSONString(HttpServletRequest request) { //故意构造一个数组,使返回的数据为json数组,数据更复杂些 List<Map<String, Object>> datas = new ArrayList<Map<String, Object>>(5); Map<String, Object> map1 = new HashMap<String, Object>(10); //可以获得ajax请求中的参数 map1.put("a", request.getParameter("a")); map1.put("b", request.getParameter("b")); map1.put("c", request.getParameter("c")); datas.add(map1); //故意构造一个数组,使返回的数据为json数组,数据更复杂些 Map<String, Object> map2 = new HashMap<String, Object>(10); map2.put("a", "11"); map2.put("b", "22"); map2.put("c", "33"); datas.add(map2); String jsonResult = JSON.toJSONString(datas); return jsonResult; } /** * 通过PrintWriter将响应数据写入response,ajax可以接受到这个数据 * * @param response * @param data */ private void renderData(HttpServletResponse response, String data) { PrintWriter printWriter = null; try { printWriter = response.getWriter(); printWriter.print(data); } catch (IOException ex) { Logger.getLogger(HelloController.class.getName()).log(Level.SEVERE, null, ex); } finally { if (null != printWriter) { printWriter.flush(); printWriter.close(); } } }}
例二:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><html> <head> <title>helloworld</title><script type="text/javascript" src="/spring_mvc/js/jquery.js"></script><script type="text/javascript"> $(function(){ $("#testButton").click(function(){ var $a = $(this); $.ajax({ url:"/spring_mvc/testAjax.do", type:'post', data:'name=admin&password=123456', dataType:'html', success:function(data,status){ if(status == "success"){ var objs = jQuery.parseJSON(data); var str = ""; for(var i=0;i<objs.length;i++){ str = str + objs[i].activityName+" "; } $("#content").html(str); } }, error:function(xhr,textStatus,errorThrown){ } }); }); });</script> </head> <body> <button id="testButton">异步传输</button> <div id="content"></div> </body></html>
public class TestAjaxAction implements Controller { public ModelAndView handleRequest(HttpServletRequest request, HttpServletResponse response) throws Exception { response.setCharacterEncoding("UTF-8"); String name = request.getParameter("name"); String password = request.getParameter("password"); System.out.println(name+" : "+password); PrintWriter out = response.getWriter(); List<Map<String,String>> list = new ArrayList<Map<String,String>>(); Map<String,String> m1 = new HashMap<String,String>(); m1.put("activityId", "000001"); m1.put("activityName", "阿斯蒂芬1"); Map<String,String> m2 = new HashMap<String,String>(); m2.put("activityId", "000002"); m2.put("activityName", "阿斯蒂芬2"); Map<String,String> m3 = new HashMap<String,String>(); m3.put("activityId", "000003"); m3.put("activityName", "阿斯蒂芬3"); Map<String,String> m4 = new HashMap<String,String>(); m4.put("activityId", "000004"); m4.put("activityName", "阿斯蒂芬4"); Map<String,String> m5 = new HashMap<String,String>(); m5.put("activityId", "000005"); m5.put("activityName", "阿斯蒂芬5"); list.add(m1); list.add(m2); list.add(m3); list.add(m4); list.add(m5); String s = JSONArray.fromObject(list).toString(); out.print(s); out.close(); return null; }}
例三:
@RequestMapping("/dataList") public void datalist(CsoftCunstomerPage page,HttpServletResponse response) throws Exception{ List<CsoftCunstomer> dataList = csoftCunstomerService.queryByList(page); //设置页面数据 Map<String,Object> jsonMap = new HashMap<String,Object>(); jsonMap.put("total",page.getPager().getRowCount()); jsonMap.put("rows", dataList); try { //设置页面不缓存 response.setContentType("application/json"); response.setHeader("Pragma", "No-cache"); response.setHeader("Cache-Control", "no-cache"); response.setCharacterEncoding("UTF-8"); PrintWriter out= null; out = response.getWriter(); out.print(JSONUtil.toJSONString(jsonMap)); out.flush(); out.close(); } catch (IOException e) { e.printStackTrace(); } }
0 0
- SpringMVC处理AJAX请求
- springmvc处理ajax请求
- springMvc处理ajax请求
- SpringMVC:ajax请求处理
- springmvc处理ajax请求
- SpringMVC @RequestBody 处理ajax请求
- springMVC处理Ajax请求的一个错误
- springmvc ajax请求处理跳转问题
- SpringMVC使用@ResponseBody处理Ajax请求
- springMVC处理ajax请求时的404
- SpringMVC经典系列-13使用SpringMVC处理Ajax请求---【LinusZhu】
- SpringMVC处理Ajax请求(请求数据为 json 格式字符串)
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Ajax响应中文乱码 [SpringMVC使用@ResponseBody处理Ajax请求]
- Spring MVC PDF下载
- Linux 下编译、安装、配置 QT
- JS对URL字符串进行编码/解码分析
- windows下远程linux桌面: debian 8.0 + gnome + vnc
- View类
- springmvc处理ajax请求
- Sql 语句 查询 某一列 不重复值 和不重复值数量
- CentOS 7 安裝 tensorflow
- Hybrid App如何实现网页语言与程序语言的混合
- 解决jquery mobile的Chrome兼容性问题
- 绕过杀软的各种姿势
- Linux常用命令
- 2017加油
- 安卓6.0及以上权限处理