最新SpringMVC-方法四种类型返回值总结,你用过几种?(2),想搞清楚ZooKeepe

最后

由于篇幅原因,就不多做展示了

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

需要这份系统化的资料的朋友,可以点击这里获取

@GetMapping(“/test5”)

public void test5(HttpServletRequest req,HttpServletResponse resp) {

req.getRequestDispatcher(“/WEB-INF/jsp/index.jsp”).forward(req,resp);

}

2.4 返回字符串


当然也可以利用 HttpServletResponse 返回其他字符串数据,包括但不局限于 JSON,像下面这样:

@RequestMapping(“/test2”)

@ResponseBody

public void test2(HttpServletResponse resp) throws IOException {

resp.setContentType(“application/json;charset=utf-8”);

PrintWriter out = resp.getWriter();

List books = new ArrayList<>();

Book b1 = new Book();

b1.setId(1);

b1.setName(“三国演义”);

b1.setAuthor(“罗贯中”);

books.add(b1);

Book b2 = new Book();

b2.setId(2);

b2.setName(“红楼梦”);

b2.setAuthor(“曹雪芹”);

books.add(b2);

String s = new Gson().toJson(books);

out.write(s);

out.flush();

out.close();

}

这是返回值为 void 时候的情况,方法返回值为 void ,不一定就真的不返回了,可能还有其他的方式给前端数据。

3. String

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

当 SpringMVC 方法的返回值为 String 类型时,也有几种不同情况。

3.1 逻辑视图名


返回 String 最常见的是逻辑视图名,这种时候一般利用默认的参数 Model 来传递数据,像下面这样 :

@RequestMapping(“/hello”)

public String aaa(Model model) {

model.addAttribute(“username”, “张三”);

return “hello”;

}

此时返回的 hello 就是逻辑视图名,需要携带的数据放在 model 中。

3.2 重定向


也可以重定向,事实上,如果在 SpringMVC 中有重定向的需求,一般采用这种方式:

@RequestMapping(“/test4”)

public String test4() {

return “redirect:/aa/index”;

}

3.3 forward 转发


也可以 forward 转发,事实上,如果在 SpringMVC 中有 forward 转发的需求,一般采用这种方式:

@RequestMapping(“/test3”)

public String test3() {

return “forward:/WEB-INF/jsp/order.jsp”;

}

3.4 真的是 String


当然,也有一种情况,就是你真的想返回一个 String ,此时,只要在方法上加上 @ResponseBody 注解即可,或者 Controller 上本身添加的是组合注解 @RestController,像下面这样:

@RestController

public class HelloController {

@GetMapping(“/hello”)

public String hello() {

return “hello provider!”;

}

}

也可以像下面这样 :

@Controller

public class HelloController {

@GetMapping(“/hello”)

@ResponseBody

public String hello() {

return “hello provider!”;

}

}

这是返回值为 String 的几种情况。

4. JSON

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

返回 JSON 算是最最常见的了,现在前后端分离的趋势下,大部分后端只需要返回 JSON 即可,那么常见的 List 集合、Map,实体类等都可以返回,这些数据由 HttpMessageConverter 自动转为 JSON ,如果大家用了 Jackson 或者 Gson ,不需要额外配置就可以自动返回 JSON 了,因为框架帮我们提供了对应的 HttpMessageConverter ,如果大家使用了 Alibaba 的 Fastjson 的话,则需要自己手动提供一个相应的 HttpMessageConverter 的实例,方法的返回值像下面这样:

@GetMapping(“/user”)

@ResponseBody

public User getUser() {

User user = new User();

List favorites = new ArrayList<>();

favorites.add(“足球”);

favorites.add(“篮球”);

user.setFavorites(favorites);

user.setUsername(“zhagnsan”);

user.setPassword(“123”);

return user;

}

@GetMapping(“/users”)

@ResponseBody

public List getALlUser() {

List users = new ArrayList<>();

for (int i = 0; i < 10; i++) {

User e = new User();

e.setUsername(“zhangsan:” + i);

惊喜

最后还准备了一套上面资料对应的面试题(有答案哦)和面试时的高频面试算法题(如果面试准备时间不够,那么集中把这些算法题做完即可,命中率高达85%+)

image.png

image.png

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

需要这份系统化的资料的朋友,可以点击这里获取

可,命中率高达85%+)

[外链图片转存中…(img-rAbbd4D4-1715650245875)]

[外链图片转存中…(img-X8UA4i2v-1715650245875)]

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

需要这份系统化的资料的朋友,可以点击这里获取

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值