controller返回数据
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返回数据相关推荐
- java中飞飞检查异常_Springboot项目如何在controller层统一返回数据以及处理异常
在开发项目中,对于controller返回数据同时返回可能大家都能够做到.也就是定义一个相应类,里面有code, msg,content(或data). 在此基础上可能还会再封装以下,搞个基础cont ...
- (SpringMVC)Controller返回JSON数据
文章目录 Controller返回JSON数据 1. 测试使用 2. 代码优化 3. 测试集合输出 4. 输出时间对象 5. 抽取为工具类 6. FastJson Controller返回JSON数据 ...
- Web项目实战 | 购物系统v2.0 | 开发记录(九)Controller层返回数据的封装 | 商品批量操作 | 五表联立实现商品搜索
--若发现文章内容有误,敬请指正,望不吝赐教,感谢! 文章目录 以往记录 运行环境 一.设计Bean用于Controller层返回数据 二.商品批量操作 2.1 批量操作的前端设计 2.2 批量操作的 ...
- java 控制器 返回 json_SpringMVC中controller返回json数据的方法
java 控制器 返回 json_SpringMVC中controller返回json数据的方法 1.方法一: 使用springmvc原生注解@ResponseBody @ResponseBody @ ...
- springboot传入json和文件_Spring Boot之 Controller 接收参数和返回数据总结(包括上传、下载文件)...
server: port: 8088 servlet: context-path: /sid spring: mvc: view: prefix: / suffix: .html /** * 返回界面 ...
- SpringMVC总结三:请求Controller返回视图类型以及请求方式、参数介绍
视图解析,请求Controller返回的视图类型: @Controller @RequestMapping("/test") public class TestController ...
- SpringMVC中接收数据和返回数据
SpringMVC接收数据,并输出到控制台,首先我们写一个User实体类 package com.zhiying.pojo;public class User {private int id;priv ...
- SpringBoot在controller返回一个HTML页面
SpringBoot在controller返回一个HTML页面 本人今天在弄springBoot,因为第一次接触,遇到了很多的坑,特别是返回jsp页面.因为是新手所以一个人捣鼓了很长时间.终于弄好了. ...
- C#串口通信—向串口发送数据,同步接收返回数据
最近写C#串口通信程序,系统是B/S架构.SerialPort类有一个DataReceived事件,用来接收串口返回的数据,但这种方式在C/S架构下很好用,但B/S就不好处理了.所以写了一个同步模式接 ...
最新文章
- 5G NR上行控制信道PUCCH
- 透明图片怎么发给别人_戒指大了怎么办?
- Spring –持久层–编写实体并配置Hibernate
- [恢]hdu 2012
- 计算机随机试题是这么随机的,用 Excel 生成随机抽题的考试试卷
- 负载均衡与分布式网络存储技术简介
- 怎么做说课PPT课件?
- 有趣的Javascript:只需一个JS让万恶的IE5、IE6、IE7、IE8全都支持H5原生Canvas绘图(有演示demo)
- ! [rejected] master - master (fetch first)问题的解决方案
- 追寻本质还是流于形式
- 查看电脑曾经连接过的WiFi名称和密码的方法
- H264--4--H264编码
- itext7读取pdf 中文_实例6:用Python给PDF批量加密
- 足球俱乐部介绍——拜仁慕尼黑
- XP系统上出现的“你可能是盗版软件受害者”的解决方法
- 一个圆怎么平分三份_如图,把一个圆分成三等份,请你再设计1-2个不同的方法,把圆分成三等到份.(正确划分一个圆得2分,正确划分二个圆得3分)...
- 阿里云无影云桌面(使用测评)
- InstallShield 2010 SP1发布(posted @ 2009-10-14)
- python3+服务器+微信公众号的聊天机器人
- Map.putall()方法
热门文章
- C++ 中ASCII码转16进制数
- 笔记本机械硬盘频繁掉盘解决
- 【转】java下载网络文件至本地
- html行高设置失效,科技常识:关于css中line-height(行高)设置无效的问题的解决方法...
- Vue路由传参的几种方式
- ubuntu 安装kde桌面_给Ubuntu安装KDE桌面 [转]
- [含lw+源码等]微信小程序英语学习平台+后台管理系统[包运行成功]适合计算机毕业设计Java毕设程序设计
- Git 学习札记(二)安装git以及基本操作
- plsql安装,oracle安装
- 转:IOS开发百度地图API-用点生成路线,导航,气泡响应