The Default Template page
其中,假如default.html要在放在templates子目录中,则还需要在配置文件中配置thymeleaf的前缀,例如:
spring.thymeleaf.prefix=classpath:/templates/module/
第三步:启动服务进行访问测试,如图所示:
SpringMVC 响应数据处理
===================================================================================
我们有一业务,现在需要将响应数据封装到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”;
}
}
第三步:启动项目进行访问测试,并检测输出结果,例如:
============================================================================
我们有一业务不需要页面,只需要将响应数据转换为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);
}
}
第三步:启动服务器分别进行访问测试,代码如下:
异常分析:
请求资源不存在,页面显示404
模板解析不正确或不存在页面显示500
=====================================================================================
我们在执行业务的过程中通常会将一些请求参数传递到服务端,服务端如何获取参数并注入给我们的方法参数的呢?
========================================================================
定义一个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对象,用于接受客户端请求参数,例如:
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开发面试高频考点题笔记300道.pdf
架构进阶面试专题及架构学习笔记脑图
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架构进阶学习视频分享