SpringMVC返回值

返回值分类
1. 返回 String
告诉 SpringMVC:
"这个方法返回一个页面名,你帮我去找 JSP 并跳转。"
也就是说:你返回的是页面名字,不是实际路径。

代码示例:

@RequestMapping("/save1.do") public String save1() { System.out.println("执行了 save1..."); return "suc"; }

SpringMVC 会做什么?

它会拿到你返回的 "suc"
然后套用你配置的视图解析器:
prefix = /WEB-INF/pages/ suffix = .jsp
拼成:
/WEB-INF/pages/suc.jsp
然后跳转到这个 JSP 页面。

2. 返回 void(不走视图解析,自己控制输出/跳转)

作用

告诉 SpringMVC:
"我不需要你处理页面跳转,我自己操作 Response 或 Request。"
这种情况 SpringMVC 不会帮你找 JSP,也不会跳转页面。
你必须自己处理:
自己转发(forward)
自己重定向(sendRedirect)
自己输出字符串(response.getWriter())
@RequestMapping("/save2.do") public void save2(HttpServletResponse response) throws IOException { System.out.println("执行了 save2..."); response.setContentType("text/html;charset=UTF-8"); response.getWriter().print("hello, 这是 void 返回的字符串输出!"); }

SpringMVC 什么都不做

你写什么,它就输出什么。
不会去找 JSP
不会视图解析
不会帮你跳转

3. 返回 ModelAndView(同时返回数据 + 页面)

这是最系统的一种方式。

作用

用一个对象同时做两件事:

  1. 装数据(相当于 request.setAttribute)
  2. 告诉 SpringMVC 返回哪个 JSP
    适用于需要向页面传值的场景。
    @RequestMapping("/save3.do") public ModelAndView save3() { System.out.println("执行了 save3..."); ModelAndView mv = new ModelAndView(); mv.addObject("msg", "用户名或者密码已经存在"); mv.setViewName("suc"); // 跳转到 /WEB-INF/pages/suc.jsp return mv; }

suc.jsp:

<p>消息:${msg}</p>

SpringMVC 会做什么?

  1. 把 "msg" 数据放到请求域
  2. 找到 JSP:
    /WEB-INF/pages/suc.jsp
    把数据带过去显示
相关推荐
峥嵘life6 小时前
Android16 311Y3 EAP-TLS 网络连接失败分析与修复总结
android·开发语言·人工智能·php
M-Robots echo6 小时前
轻量化裁剪方案解析:M-Robots 模块化构建,适配高低端各类机器人硬件平台
java·机器人·ros·开源社区·atomgit·m-robots
不可求~7 小时前
多模型路由怎么落地:把任务分流写进项目的最小实现
java·前端·数据库
mldong8 小时前
用 DDD 设计工作流引擎:聚合根与充血模型
java·架构
mqiqe9 小时前
AgentScope Java Harness:4. 双层记忆系统 让 Agent 拥有真正的“长期大脑“
java·开发语言
伍一519 小时前
03-文件管理模块-一个看似简单的模块藏着多少细节
java·ruoyi·若依
gugucoding9 小时前
46. 【Java】JUC并发工具:让并发更简单
java·开发语言
Nebula_g10 小时前
JavaSE基础语法:面向对象高级(代码中的成分)
java·开发语言·编程·javase·技术栈·高级语法
for_ever_love__10 小时前
python基础语法学习: 异常的传递性
开发语言·python·学习
AC赳赳老秦10 小时前
公开图片 OCR 数据提取:OpenClaw 合规采集公开信息图,识别文字与表格并转化为结构化数据
java·大数据·前端·数据库·python·php·openclaw