SpringBoot工程下Spring MVC技术的应用( 二 )
第三步:启动项目进行访问测试,并检测输出结果,例如:
文章插图
JSON数据响应我们有一业务不需要页面,只需要将响应数据转换为json,然后响应到客户端,如何实现呢?
第一步:定义ReponseResult对象用于封装响应数据,例如:
package com.cy.pj.module.pojo;public class ResponseResult {private Integer code;private String message;public Integer getCode() {return code;}public void setCode(Integer code) {this.code = code;}public String getMessage() {return message;}public void setMessage(String message) {this.message = message;}}
第二步:定义JsonObjctController以及方法,代码如下:
package com.cy.pj.module.controller;@RestController//@RestController=@Controller+@ponseBodypublic class JsonObjectController {@RequestMapping("/doConvertResponseToJson")public ResponseResult doConvertResponseToJson(){ResponseResult rs=new ResponseResult();rs.setCode(200);rs.setMessage("OK");return rs;}@RequestMapping("/doConvertMapToJson")public Map doConvertMapToJson(){Map map=new HashMap<>();map.put("username","刘德华");map.put("state",true);return map;}@RequestMapping("/doPrintJSON")public void doPrint(HttpServletResponse response)throws Exception{Map map=new HashMap<>();map.put("username","刘德华");map.put("state",true);//将map中的数据转换为json格式字符串ObjectMapper om=new ObjectMapper();String jsonStr=om.writeValueAsString(map);System.out.println("jsonStr="+jsonStr);//将字符串响应到客户端//设置响应数据的编码response.setCharacterEncoding("utf-8");//告诉客户端,要向它响应的数据类型为text/html,编码为utf-8.请以这种编码进行数据呈现response.setContentType("text/html;charset=utf-8");PrintWriter pw=response.getWriter();pw.println(jsonStr);}}
第三步:启动服务器分别进行访问测试,代码如下:
文章插图
异常分析:
请求资源不存在 , 页面显示404
文章插图
文章插图
【SpringBoot工程下Spring MVC技术的应用】模板解析不正确或不存在页面显示500
文章插图
文章插图
SpingMVC 请求参数数据处理我们在执行业务的过程中通常会将一些请求参数传递到服务端,服务端如何获取参数并注入给我们的方法参数的呢?
准备工作定义一个controller对象,用户处理客户端请求,例如:
package com.cy.pj.module.controller;import com.cy.pj.module.pojo.RequestParameter;import org.springframework.web.bind.annotation.*;import java.util.Map;@RestControllerpublic class ParamObjectController {}
直接量方式在ParamObjectController中添加方法,基于直接量方式接受客户端请求参数,例如:
@GetMapping("/doParam01")public String doMethodParam(String name){ return "request params "+name;}
访问时,可以这样传参,例如:
http://localhost/doParam01?name=beijing
POJO对象方式定义pojo对象,用于接受客户端请求参数,例如:
package com.cy.pj.module.pojo;public class RequestParameter {private String name;//...... public String getName() {return name;}public void setName(String name) {this.name = name;}@Override public String toString() {return "RequestParam{" +"name='" + name + ''' +'}';}}
定义Controller方法,方法中使用pojo对象接收方法参数,例如:
@RequestMapping("/doParam02")public String doMethodParam(RequestParameter param){//pojo对象接收请求参数,pojo对象中需提供与参数名相匹配的set方法 return "request params "+param.toString();}
启动服务进行访问测试,可以这样传参,例如:
http://localhost/doParam02?name=beijing
Map对象方式有时候我们不想使用pojo对象接收请求参数,我们可以使用map对象来接收,又该如何实现呢?
定义Controller方法,基于map对象接收请求参数,例如:
@GetMapping("/doParam03")public String doMethodParam(@RequestParam Map param){ return "request params "+param.toString();}
其中,map接收请求参数,必须使用@RequestParam对参数进行描述.
启动服务进行访问测试,可以这样传参,例如:
http://localhost/doParam03?name=beijing
总结(Summary)本章节对springboot工程下spring mvc技术的应用做了一个入门实现,并结合实际项目中的业务应用,讲解了MVC中请求数据的获取和响应数据处理的一个基本过程.
- 推新标准建新生态,下载超198亿次金山发力海内外
- 闲鱼|电诉宝:“闲鱼”网络欺诈成用户投诉热点 Q3获“不建议下单”评级
- 王兴称美团优选目前重点是建设核心能力;苏宁旗下云网万店融资60亿元;阿里小米拟增资居然之家|8点1氪 | 美团
- 先别|用了周冬雨的照片,我会成为下一个被告?自媒体创作者先别自乱阵脚
- 丹丹|福佑卡车创始人兼CEO单丹丹:数字领航 驶向下一个十年
- 看过明年的iPhone之后,现在下手的都哭了
- 砍单|iPhone12之后,拼多多又将iPhone12Pro拉下水
- 巨头|“社区薇娅”都不够用了 一线互联网巨头全员下场卖菜
- 余额|中兴通讯:现有资金余额仅能确保公司当前经营规模下现金流安全
- 销售|Shopify宣布创下51亿美元的假日购物季销售纪录