SpringBoot工程下Spring MVC技术的应用

The Default Template page

其中,假如default.html要在放在templates子目录中,则还需要在配置文件中配置thymeleaf的前缀,例如:

spring.thymeleaf.prefix=classpath:/templates/module/

第三步:启动服务进行访问测试,如图所示:

SpringBoot工程下Spring MVC技术的应用

SpringMVC 响应数据处理

ModelAndView 应用

===================================================================================

我们有一业务,现在需要将响应数据封装到ModelAndView对象,然后响应到客户端,如何实现呢?

第一步:定义### ModelAndViewontroller以及方法,返回页面和数据形式:

package com.cy.pj.module.controller;

import org.springframework.stereotype.Controller;

import org.springframework.ui.Model;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class ModelViewController {

@RequestMapping(“/doModelAndView”)

public String doModelAndView(Model model) {

model.addAttribute(“username”, “jason”);

model.addAttribute(“state”, true);

return “default”;

}

}

返回页面形式代码:

package com.cy.pj.health.controller;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.RequestMapping;

@Controller

public class PageController {

//返回页面

@RequestMapping(“/getview”)

public String doHealthUI(){

return “default”;

}

}

第三步:启动项目进行访问测试,并检测输出结果,例如:

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+@ponseBody

public class JsonObjectController {

@RequestMapping(“/doConvertResponseToJson”)

public ResponseResult doConvertResponseToJson(){

ResponseResult rs=new ResponseResult();

rs.setCode(200);

rs.setMessage(“OK”);

return rs;

}

@RequestMapping(“/doConvertMapToJson”)

public Map<String,Object> doConvertMapToJson(){

Map<String,Object> map=new HashMap<>();

map.put(“username”,“刘德华”);

map.put(“state”,true);

return map;

}

@RequestMapping(“/doPrintJSON”)

public void doPrint(HttpServletResponse response)throws Exception{

Map<String,Object> 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);

}

}

第三步:启动服务器分别进行访问测试,代码如下:

SpringBoot工程下Spring MVC技术的应用

异常分析:

请求资源不存在,页面显示404

SpringBoot工程下Spring MVC技术的应用

SpringBoot工程下Spring MVC技术的应用

模板解析不正确或不存在页面显示500

SpringBoot工程下Spring MVC技术的应用

SpringBoot工程下Spring MVC技术的应用

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;

@RestController

public 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();

}

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

中高级Java开发面试高频考点题笔记300道.pdf

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

架构进阶面试专题及架构学习笔记脑图

记一次蚂蚁金服Java研发岗的面试经历,分享下我的复习笔记面经

Java架构进阶学习视频分享

+param.toString();

}

学习分享,共勉

这里是小编拿到的学习资源,其中包括“中高级Java开发面试高频考点题笔记300道.pdf”和“Java核心知识体系笔记.pdf”文件分享,内容丰富,囊括了JVM、锁、并发、Java反射、Spring原理、微服务、Zookeeper、数据库、数据结构等大量知识点。同时还有Java进阶学习的知识笔记脑图(内含大量学习笔记)!

资料整理不易,读者朋友可以转发分享下!

Java核心知识体系笔记.pdf

[外链图片转存中…(img-s276frw8-1714463824540)]

中高级Java开发面试高频考点题笔记300道.pdf

[外链图片转存中…(img-52bzXyL8-1714463824541)]

架构进阶面试专题及架构学习笔记脑图

[外链图片转存中…(img-G0YpBN88-1714463824541)]

Java架构进阶学习视频分享

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值