controller返回数据方式

1. 使用model方式
在调用到这个请求时,就将model作为一个参数传入进来,然后使用model中addAttribute(String key , Object object)方法添加数据即可,前端页面(thymeleaf)可使用${key}方式直接获取,注:通过ajax无刷新方式请求时不能正常获取数据

@Controller
public class PersonCtr{@AutowiredPersonSer personSer;@Post("/find")public String findExisted(@RequestParam String id , Model model){if(personSer.isExisted(id)){model.addAttribute("flag" , "Existed");//key为flag,value为Existedmodel.addAttribute("flag1" , "Existed");//key为flag1,value为Existedmodel.addAttribute("flag3" , "Existed");//key为flag3,value为Existed}return "/person.html";}
}
model对应的前端Thymeleaf如下即可获取数据
<input type = "text" th:value = "${flag}">
<input type = "text" th:value = "${flag1}">
<input type = "text" th:value = "${flag2}">

2.使用ModelAndView
该方法和model很类似,传递数据的方式都是使用addObject(String key , Object object),但可以实现跳转到其他的页面,注:同样通过ajax无刷新方式请求时不能正常获取数据

@Controller
public class PersonCtr{@AutowiredPersonSer personSer;@Post("/find")public ModelAndView findExisted(@RequestParam String id){ModelAndView mav = new ModelAndView("/person.html");//这里的参数写要跳转的页面即可,写不同的页面就可以使用调整,当然也可以通过传入HttpServletResponse对象,用该对象的sendRedirect("页面地址")方法进行跳转if(personSer.isExisted(id)){mav.addObject("flag" , "Existed");//key为flag,value为Existedmav.addObject("flag1" , "Existed");//key为flag1,value为Existedmav.addObject("flag3" , "Existed");//key为flag3,value为Existed}return mav;}
}
ModelAndView 对应的前端Thymeleaf获取数据和model方法是一样的,如下:
<input type = "text" th:value = "${flag}">
<input type = "text" th:value = "${flag1}">
<input type = "text" th:value = "${flag2}">

3.@ResponseBody注解,可以直接传递字符串,JSON数据

我在使用到ajax做无刷请求时,发现不管怎样前面两种方法都不能正常就数据传递过去,我猜测是因为局部刷新,导致web model没有更新,所以无法获取到数据,找了一下发现直接使用@ResponseBody可以很方便传递数据。

@Controller
public class PersonCtr{@AutowiredPersonSer personSer;@Post("/find")@ResponseBodypublic String findExisted(@RequestParam String id){//直接返回String类型数据,数据量多的话可将数据转换成JSON字符串if(personSer.isExisted(id)){return "Existed";}return "isn`t Existed";//}
}

$(document).ready(function(){$("#commit").click(function(){$.post("/find",{id:JSON.stringify(id),},function(date){//回调函数window.confirm(date);//date 就是controller中返回的字符串}) });});

controller返回数据相关推荐

  1. java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常

    在开发项目中,对于controller返回数据同时返回可能大家都能够做到.也就是定义一个相应类,里面有code, msg,content(或data). 在此基础上可能还会再封装以下,搞个基础cont ...

  2. (SpringMVC)Controller返回JSON数据

    文章目录 Controller返回JSON数据 1. 测试使用 2. 代码优化 3. 测试集合输出 4. 输出时间对象 5. 抽取为工具类 6. FastJson Controller返回JSON数据 ...

  3. Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索

    --若发现文章内容有误,敬请指正,望不吝赐教,感谢! 文章目录 以往记录 运行环境 一.设计Bean用于Controller层返回数据 二.商品批量操作 2.1 批量操作的前端设计 2.2 批量操作的 ...

  4. java 控制器 返回 json_SpringMVC中controller返回json数据的方法

    java 控制器 返回 json_SpringMVC中controller返回json数据的方法 1.方法一: 使用springmvc原生注解@ResponseBody @ResponseBody @ ...

  5. springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...

    server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...

  6. SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍

    视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...

  7. SpringMVC中接收数据和返回数据

    SpringMVC接收数据,并输出到控制台,首先我们写一个User实体类 package com.zhiying.pojo;public class User {private int id;priv ...

  8. SpringBoot在controller返回一个HTML页面

    SpringBoot在controller返回一个HTML页面 本人今天在弄springBoot,因为第一次接触,遇到了很多的坑,特别是返回jsp页面.因为是新手所以一个人捣鼓了很长时间.终于弄好了. ...

  9. C#串口通信—向串口发送数据,同步接收返回数据

    最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...

最新文章

  1. 5G NR上行控制信道PUCCH
  2. 透明图片怎么发给别人_戒指大了怎么办?
  3. Spring –持久层–编写实体并配置Hibernate
  4. [恢]hdu 2012
  5. 计算机随机试题是这么随机的,用 Excel 生成随机抽题的考试试卷
  6. 负载均衡与分布式网络存储技术简介
  7. 怎么做说课PPT课件?
  8. 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
  9. ! [rejected] master - master (fetch first)问题的解决方案
  10. 追寻本质还是流于形式
  11. 查看电脑曾经连接过的WiFi名称和密码的方法
  12. H264--4--H264编码
  13. itext7读取pdf 中文_实例6:用Python给PDF批量加密
  14. 足球俱乐部介绍——拜仁慕尼黑
  15. XP系统上出现的“你可能是盗版软件受害者”的解决方法
  16. 一个圆怎么平分三份_如图,把一个圆分成三等份,请你再设计1-2个不同的方法,把圆分成三等到份.(正确划分一个圆得2分,正确划分二个圆得3分)...
  17. 阿里云无影云桌面(使用测评)
  18. InstallShield 2010 SP1发布(posted @ 2009-10-14)
  19. python3+服务器+微信公众号的聊天机器人
  20. Map.putall()方法

热门文章

  1. C++ 中ASCII码转16进制数
  2. 笔记本机械硬盘频繁掉盘解决
  3. 【转】java下载网络文件至本地
  4. html行高设置失效,科技常识:关于css中line-height(行高)设置无效的问题的解决方法...
  5. Vue路由传参的几种方式
  6. ubuntu 安装kde桌面_给Ubuntu安装KDE桌面 [转]
  7. [含lw+源码等]微信小程序英语学习平台+后台管理系统[包运行成功]适合计算机毕业设计Java毕设程序设计
  8. Git 学习札记(二)安装git以及基本操作
  9. plsql安装,oracle安装
  10. 转:IOS开发百度地图API-用点生成路线,导航,气泡响应