SpringMVC笔记--5处理响应数据ModelAndView

SpringMVC 接口开发实现 上篇文章讲解了SpringMVC 入门,这篇文章使用SpringMVC 来开发接口。记得之前有一篇文章 java web开发(二) 接口开发,是使用Servlet开发的接口。如果你还未了解,可以先看看这篇文章。好了,我们进入主题。 在开始这篇文章之前,请先阅读请参考java web开发(二) 接口开发这篇文章。 一、搭建环境。这一步骤 请参考上篇文章, SpringM... 阅读详情

第5章 处理响应数据

5.1 SpringMVC 输出模型数据概述

对于MVC框架来说模式数据是最重要的,因为控制C是为了产生模型数据M,而视图V则是为了渲染模型数据。

如何将模型数据暴露给视图是Spring MVC框架的一项重要工作,Spring MVC提供了多种途径输出模型数据

  • ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据
  • @ModelAttribute:方法入参标准该注解后,入参的对象就会放到数据模型中
  • Map及Model: 入参为 org.springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处理方法返回时,Map 中的数据会自动添加到模型中。
  • @SessionAtributes:将模型中的某个属性暂存到HttpSession中,以便多个请求之间可以共享这个属性。

5.2 处理模型数据之ModelAndView

5.2.1 ModelAndView介绍

1)控制器处理方法的返回值如果为 ModelAndView,则其既包含视图信息,也包含模型数据信息。这样Spring MVC就可以使用视图对模型数据进行渲染了。可以简单地将模型数据看成一个Map<String,Object>对象

构造器的有参无参   
    有参写法:
        ModelAndView mv = new ModelAndView(viewName );

    无参写法:
        ModelAndView mav = new ModelAndView();
        mav.setViewName("success");//设置视图信息

2)添加模型数据:

MoelAndView addObject(String attributeName, Object attributeValue)
ModelAndView addAllObject(Map<String, ?> modelMap)

3)设置视图:

void setView(View view)//指定一个具体的视图对象
void setViewName(String viewName)//指定一个逻辑视图名//返回逻辑地址

5.2.2 实验代码

1) 增加控制器方法

/**
 * 目标方法的返回类型可以是ModelAndView类型
 *                 其中包含视图信息和模型数据信息 
 	结论: Springmvc会把ModelAndView中的模型数据存放到request域对象中.
 */
@RequestMapping("/testModelAndView")
public ModelAndView testModelAndView(){
    System.out.println("testModelAndView");
    
    String viewName = "success";//设置到了ModelAndView中
    ModelAndView mv = new ModelAndView(viewName );
    mv.addObject("time",new Date().toString()); //实质上存放到request域中 
    
    return mv;
}

/*  @ModelAttribute的用法:
Spring MVC将请求消息绑定到User对象中,然后再以"user:user对象"为键值对放到模型中。在准备对视图进行渲染前,Spring MVC还会进一步将模型中的数据转储到视图的上下文中以暴露给视图对象。对于JSP视图来说,Spring MVC会将模型数据转储到ServletRequest的属性列表中(即通过ServletRequest#setAttribute(String name,Object o)保存)


*/
@RequestMapping("/testModelAndView1")
public ModelAndView testModelAndView1(@ModelAttribute("user") User user){
    
    System.out.println("testModelAndView1");
    return "success";
}
/*也可以在方法上标@ModelAttribute,此时Spring MVC在调用目标处理方法前,会先逐个调用在方法级上标准了@ModelAttribute的方法,并将这些方法的返回值添加到模型中。*/
@ModelAttribute("user")//返回的健名
public User getUser(){
    User user = new User();
    user.setUseId("1001");
    return user;
}
@RequestMapping("/testModelAndView2")
public ModelAndView testModelAndView2(@ModelAttribute("user") User user){
    
    System.out.println("testModelAndView2");
    return "success";
}

2) 增加页面链接

<!--测试 ModelAndView 作为处理返回结果 -->
<a href="springmvc/testModelAndView">testModelAndView</a>

3) 增加成功页面,显示数据

time: ${requestScope.time }

4) 断点调试

5.2.2 源码解析

5.3 处理模型数据之 Map

5.3.1 Map介绍

Spring MVC在内部使用了

1)Spring MVC 在内部使用了一个 org.springframework.ui.Model 接口存储模型数据,他的功能类似于java.util.Map,但它比Map易用。org.springframework.ui.ModelMap实现了Map接口,而org.springframework.ui.ExtendedModelMap扩展于ModelMap同时实现了Model接口。

2)Spring MVC在调用方法前会创建一个隐含的模型对象作为模型数据的存储容器。

3)如果方法的入参为 Map或 Model类型,Spring MVC 会将隐含模型的引用传递给这些入参。

4)在方法体内,开发者可以通过这个入参对象访问到模型中的所有数据,也可以向模型中添加新的属性数据

Spring MVC在调用方法之前会创建一个隐含的模型对象,作为模型数据的存储容器,我们称之为“隐含模型”。如果处理方法的入参为Map或Model模型,Spring MVC会将隐含模型的引用传递给这些入参。在方法体内,开发者可以同这个入参对象访问到模型中的所有数据,也可以向模型中添加新的属性数据。

5.3.2 实验代码

1) 增加控制器方法

//目标方法的返回类型也可以是一个Map类型参数(也可以是Model,或ModelMap类型)
@RequestMapping("/testMap")
public String testMap(Map<String,Object> map){ //【重点】
    System.out.println(map.getClass().getName());
    //org.springframework.validation.support.BindingAwareModelMap
    
    map.put("names", Arrays.asList("Tom","Jerry","Kite"));
    
    return "success";
}

2) 增加页面链接

<!-- 测试 Map 作为处理返回结果 -->
<a href="springmvc/testMap">testMap</a>

3) 增加成功页面,显示结果

names: ${requestScope.names }

4) 显示结果截图

5) 注意问题:Map集合的泛型,key为String,Value为Object,而不是String

6) 测试参数类型

//目标方法的返回类型也可以是一个Map类型参数(也可以是Model,或ModelMap类型)
@RequestMapping("/testMap2")
public String testMap2(Map<String,Object> map,Model model,ModelMap modelMap){
    System.out.println(map.getClass().getName());
    map.put("names", Arrays.asList("Tom","Jerry","Kite"));
    model.addAttribute("model", "org.springframework.ui.Model");
    modelMap.put("modelMap", "org.springframework.ui.ModelMap");

    System.out.println(map == model);
    System.out.println(map == modelMap);
    System.out.println(model == modelMap);

    System.out.println(map.getClass().getName());
    System.out.println(model.getClass().getName());
    System.out.println(modelMap.getClass().getName());

    /*
    true
    true
    true
    org.springframework.validation.support.BindingAwareModelMap
    org.springframework.validation.support.BindingAwareModelMap
    org.springframework.validation.support.BindingAwareModelMap
        */ 
    return "success";
}


7) 类层次结构

8) 推荐:Map, 便于框架移植。

9) 源码参考

public class BindingAwareModelMap extends ExtendedModelMap {
 
    @Override
    public Object put(String key, Object value) {
        removeBindingResultIfNecessary(key, value);
        return super.put(key, value);
    }

    @Override
    public void putAll(Map<? extends String, ?> map) {
        for (Map.Entry<? extends String, ?> entry : map.entrySet()) {
            removeBindingResultIfNecessary(entry.getKey(), entry.getValue());
        }
        super.putAll(map);
    }

    private void removeBindingResultIfNecessary(Object key, Object value) {
        if (key instanceof String) {
            String attributeName = (String) key;
            if (!attributeName.startsWith(BindingResult.MODEL_KEY_PREFIX)) {
                String bindingResultKey = BindingResult.MODEL_KEY_PREFIX + attributeName;
                BindingResult bindingResult = (BindingResult) get(bindingResultKey);
                if (bindingResult != null && bindingResult.getTarget() != value) {
                    remove(bindingResultKey);
                }
            }
        }
    }
}

放到session里:

在控制器(类)上加@SessionAttributes(value={“user”}),既放在session里面,也放在请求域里面

Model

	/**
	 * Model
	 */
	@RequestMapping("/testModel")
	public String testModel(Model model) {
		//模型数据 : loginMsg=用户名或者密码错误
		
		model.addAttribute("loginMsg", "用户名或者密码错误");
		
		return "success";
	}

@ SessionAttributes

如果希望在多个请求之间共用某个模型属性数据,则可以在控制器类标注一个@SessionAttributes,Spring MVC会将模型中对应的属性暂存到HttpSession中。

在类上标准@SessionAttributes(“user”),然后类中某个方法的参数是@ModelAttribute("user") User user,此时就会把这个方法中的参数变为全局都可以获得的参数,别的方法获取方式为modelMap.get("user");

整合代码

package com.atguigu.springmvc.handler;

import java.util.Map;

import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.servlet.ModelAndView;

@Controller
public class SpringmvcHandler {
		
	/**
	 * 重定向
	 */
	@RequestMapping("/testRedirectView")
	public String testRedirectView() {
		
		return "redirect:/ok.jsp";
	}
	/**
	 * 视图 View
	 */
	@RequestMapping("/testView")
	public String testView() {
		
		return "success";
	}
	
	/**
	 * Model
	 */
	@RequestMapping("/testModel")
	public String testModel(Model model) {
		//模型数据 : loginMsg=用户名或者密码错误
		
		model.addAttribute("loginMsg", "用户名或者密码错误");
		
		return "success";
	}
	/**
	 * Map
	 * 结论: SpringMVC会把Map中的模型数据存放到request域对象中.
	 *      SpringMVC再调用完请求处理方法后,不管方法的返回值是什么类型,都会处理成一个ModelAndView对象(参考DispatcherServlet的945行)
	 * 
	 */		
	@RequestMapping("/testMap")
	public String  testMap(Map<String,Object> map ) {
		//模型数据: password=123456
		System.out.println(map.getClass().getName()); //BindingAwareModelMap
		map.put("password", "123456");
		
		return "success";
	}
	
	/**
	 * ModelAndView
	 * 结论: Springmvc会把ModelAndView中的模型数据存放到request域对象中.
	 */
	@RequestMapping("/testModelAndView")
	public  ModelAndView  testModelAndView() {
		//模型数据: username=Admin
		ModelAndView mav = new ModelAndView();
		//添加模型数据
		mav.addObject("username", "Admin");
		
		//设置视图信息
		mav.setViewName("success");
		
		return mav ;
	}
}

使用spring ResponseEntity处理http响应

简介

使用spring时,达到同一目的通常有很多方法,对处理http响应也是一样。本文我们学习如何通ResponseEntity设置http相应内容、状态以及头信息。

ResponseEntity

ResponseEntity标识整个http相应:状态码、头部信息以及相应体内容。因此我们可以使用其对http响应实现完整配置。

如果需要使用ResponseEntity,必须在请求点返回,通常在spring rest中实现。ResponseEntity是通用类型,因此可以使用任意类型作为响应体:

@GetMapping("/hello")
ResponseEntity<String> hello() {
    return new ResponseEntity<>("Hello World!", HttpStatus.OK);
}

可以通过编程方式指明响应状态,所以根据不同场景返回不同状态:

@GetMapping("/age")
ResponseEntity<String> age(@RequestParam("yearOfBirth") int yearOfBirth) {
    if (isInFuture(yearOfBirth)) {
        return new ResponseEntity<>(
            "Year of birth cannot be in the future", 
            HttpStatus.BAD_REQUEST);
    }

    return new ResponseEntity<>(
        "Your age is " + calculateAge(yearOfBirth), 
        HttpStatus.OK);
}

另外,还可以设置http响应头:

@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
    HttpHeaders headers = new HttpHeaders();
    headers.add("Custom-Header", "foo");
    return new ResponseEntity<>(
        "Custom header set", headers, HttpStatus.OK);}

而且, ResponseEntity提供了两个内嵌的构建器接口: HeadersBuilder 和其子接口 BodyBuilder。因此我们能通过ResponseEntity的静态方法直接访问。

最简单的情况是相应包括一个主体及http 200响应码:

@GetMapping("/hello")
ResponseEntity<String> hello() {
    return ResponseEntity.ok("Hello World!");
}

大多数常用的http 响应码,可以通过下面static方法:

BodyBuilder accepted();
BodyBuilder badRequest();
BodyBuilder created(java.net.URI location);
HeadersBuilder<?> noContent();
HeadersBuilder<?> notFound();
BodyBuilder ok();

另外,可以能使用BodyBuilder status(HttpStatus status)和BodyBuilder status(int status) 方法设置http状态。使用ResponseEntity BodyBuilder.body(T body)设置http响应体:

@GetMapping("/age")
ResponseEntity<String> age(@RequestParam("yearOfBirth") int yearOfBirth) {
    if (isInFuture(yearOfBirth)) {
        return ResponseEntity.badRequest()
            .body("Year of birth cannot be in the future");
    }
    return ResponseEntity.status(HttpStatus.OK)
        .body("Your age is " + calculateAge(yearOfBirth));

也可以自定义头信息:

@GetMapping("/customHeader")
ResponseEntity<String> customHeader() {
    return ResponseEntity.ok()
        .header("Custom-Header", "foo")
        .body("Custom header set");
}

因为BodyBuilder.body()返回ResponseEntity 而不是 BodyBuilder,需要最后调用。注意使用HeaderBuilder 不能设置任何响应体属性。

尽管ResponseEntity非常强大,但不应该过度使用。在一些简单情况下,还有其他方法能满足我们的需求,使代码更整洁。

替代方法

@ResponseBody

典型spring mvc应用,请求点通常返回html页面。有时我们仅需要实际数据,如使用ajax请求。这时我们能通过@ResponseBody注解标记请求处理方法,审批人能够处理方法结果值作为http响应体。

@ResponseStatus

当请求点成功返回,spring提供http 200(ok)相应。如果请求点抛出异常,spring查找异常处理器,由其返回相应的http状态码。对这些方法增加@ResponseStatus注解,spring会返回自定义http状态码。

直接操作相应
Spring 也允许我们直接 javax.servlet.http.HttpServletResponse 对象;只需要申明其作为方法参数:

@GetMapping("/manual")
void manual(HttpServletResponse response) throws IOException {
    response.setHeader("Custom-Header", "foo");
    response.setStatus(200);
    response.getWriter().println("Hello World!");
}

但需要说明,既然spring已经提供底层实现的抽象和附件功能,我们不建议直接操作response。

【SpringMVC笔记03】SpringMVC返回响应数据的几种方式 这篇文章主要介绍了SpringMVC返回响应数据的几种方式。 阅读详情

相关推荐

SpringMVC(七):SpringMVC的响应处理

当请求处理完成后,我们需要将此次请求的处理结果响应给浏览器,以前我们是自己在Servlet中使用response对象来完成响应的,那么在SpringMVC中如何响应请求的处理结果呢?既然我们希望使用单元方法的返回值来响应ajax请求的处理结果,而目前DispatcherServlet的底层会将单元方法的返回值按照请求转发或者重定向来处理,所以就需要我们告诉DispatcherServlet,单元方法的返回值不要按照请求转发或者重定向处理,而是按照直接响应处理,将单元方法的返回值直接响应给浏览器。

Lansonli(蓝深李)的博客 1184

Spring MVC详解

一、Spring概述 1. 简介     Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。Spring框架在框架设计、扩展性、灵活性等方面全面超越了Struts、WebWork等MVC框架,从原来的追赶者一跃为MVC的领跑者。Spring框架围绕Dispache

zhangqifeng专栏 1954

2021秋-北邮计算机导论期末考试(BUPT)

2021秋-北邮计算机导论期末考试(BUPT) 难度较低适合新手练习

weixin_73985779的博客 1494

响应数据和结果视图

返回值分类 1、返回值是字符串 Controller方法返回字符串可以指定逻辑视图的名称,根据视图解析器解析为物理视图的地址。 转换为物理视图地址就是实际上执行时访问的地址 图片说明 逻辑地址物理视图地址: 举例示范 jsp页面 controller类中的方法 跳转的成功页面 执行成功 注意: 访问WEB-IND中的pages包中的success.jsp时地址栏并不发生改变 看到了185 ...

技术积累,技术分享 318

告别第三方工具!用Windows自带蓝牙玩转BLE设备调试(保姆级图文教程)

本文详细介绍了如何利用Windows自带的蓝牙功能进行BLE设备调试,无需第三方工具。从硬件准备、系统配置到实战操作,提供保姆级图文教程,帮助开发者高效完成设备发现、数据交互等全流程调试工作。特别适合物联网开发者和智能硬件爱好者。

o5p6q的博客 724

Java实战:用Proj4j搞定WGS84与CGCS2000坐标互转(附完整代码)

本文详细介绍了如何使用Java库Proj4j实现WGS84与CGCS2000坐标系之间的高精度转换。通过七参数转换模型和格网改正量文件,提供完整的代码实现和项目配置指南,帮助开发者快速集成到地理信息系统项目中,提升坐标转换效率和精度。

weixin_29251567的博客 826

Springmvc中响应之返回值为ModelAndView类型

ModelAndView对象是Spring提供的一个对象,可以用来调整具体的JSP视图。

you4580的专栏 819

Labview项目01:标准可配置序列测试框架

摘要:本文介绍了一个基于LabVIEW2020开发的通用测试框架系统。该系统采用模块化设计,包含主界面、调试界面、设置界面和登录界面。主功能包括:1)可配置测试序列,支持延时、预定值输出、随机值输出等操作;2)单步测试功能自主添加;3)界面支持测试序列编辑和权限管理。系统采用队列机制处理事件和测试流程,通过CSV文件存储测试序列,支持参数化配置。用户可自定义测试VI(A_.vi和N_.vi格式),并通过调试界面验证测试序列。最终测试结果在主界面显示,提供整体判断功能。该系统既可作为学习参考,也可用于实际测试

weixin_38637405的博客 1552

Spring MVC 传递模型数据到视图中方法总结

Spring MVC 传递模型数据到视图中的方法总结一般来说,有如下的4种方法来传递模型数据到视图中1、ModelAndView要求:处理方法返回值类型为 ModelAndView。在方法体中我们通过该ModelAndView对象添加模型数据。2、Model/Map/ModelMap要求:使用org.springframework.ui.Model、org.springframework.ui.Mo

wojiushimogui的博客 1万+

【ComfyUI】Wan2.2 + IndexTTS 图像数字人或动物口播视频生成

本文介绍了一个基于ComfyUI的数字人口播视频生成工作流,整合了IndexTTS和图像处理技术。该系统通过多模型协同工作,实现从形象图、文本和音频输入到自动生成口播视频的全流程。核心包含WanVideo系列模型,通过CLIP Vision、T5文本编码器和Wav2Vec语音模型分别处理视觉特征、语义理解和口型同步。工作流涵盖素材加载、特征提取、音频处理和视频生成等节点,支持人物、动物等多种主体的口播内容创作。该方案自动化程度高,适用于知识讲解、剧情旁白等多种场景,能帮助创作者高效产出高质量口播视频。

Mr数据杨 2046

把 LLM 编排能力塞进 ABAP 系统里,ZLLM 仓库的工程价值与 SAP 落地场景

ZLLM项目将LLM应用开发中的常见工程问题引入ABAP原生环境,为SAP系统提供AI工作流构建能力。它类似ABAP版的LangChain,支持Chain组合、Prompt模板、状态传递等核心功能,强调纯ABAP实现、延迟执行以及与ABAP数据结构的深度集成。项目包含工厂类、LLM客户端、负载均衡器等模块,特别设计了能处理ABAP内表和结构的模板引擎,使业务数据可直接用于Prompt生成。通过Step和Flow机制支持复杂业务过程编排,并采用延迟执行和并行处理优化批量任务性能。该项目为ABAP开发者提供了在

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 61

springmvc中model、modelandview那些事

model、modelandview那些事

weixin_52236586的博客 265

腾讯Android开发面试准备指南及参考答案

腾讯元宝高级Android开发职位面试准备指南 该职位要求扎实的Kotlin基础、架构设计能力和性能优化经验,重点关注Android客户端开发。面试流程约3轮,支持线上面试,流程较快。候选人需准备以下核心内容: 基础技术:Kotlin特性、Android开发生命周期、多线程编程 架构设计:MVVM/MVI模式应用、组件化解耦方案 性能优化:流畅度提升、内存管理、启动时间优化等实战案例 加分技能:Jetpack Compose开发、音视频处理、跨平台开发经验 建议结合项目经验准备具体案例,突出技术深度和问题解

郑伟强dev的专栏 1192

SpringMVC数据页响应ModelAndView之页面跳转

目录SpringMVC的数据响应SpringMVC的数据响应方式①页面跳转②回写数据2、返回ModelAndView对象方式1:直接new对象 方式2:写在方法里让SpringMVC创建方式3:model和view分开做方式4:通过HttpServletRequest页面跳转1、返回字符串形式直接返回字符串:此种方式会将返回的字符串与视图解析器的前后缀拼接后跳转。 返回带有前缀的字符串: 2、返回ModelAndView对象 方式1:直接new对象 方式3:model和vi

weixin_60719453的博客 4453

基于Simulink的六旋翼无人机动力分配仿真建模示例

六旋翼无人机概述特点:高冗余度、增强的负载能力和更好的故障容忍性。关键组件电机与螺旋桨:提供升力和推力。电调(ESC):控制电机转速。IMU(惯性测量单元):包括加速度计和陀螺仪,用于姿态估计。飞控板:处理传感器数据并生成控制信号。应用场景:航拍摄影、农业监测、物流配送等。仿真目标搭建一个简化的六旋翼无人机动力分配模型,涵盖电机驱动、姿态控制及位置控制过程。分析不同条件下的性能指标(如响应时间、稳定性等),并探讨六旋翼无人机的设计优化。

xiaoheshang_123的博客 484

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

spring 笔记五 SpringMVC的数据响应

上述方式手动拼接json格式字符串的方式很麻烦,开发中往往要将复杂的java对象转换成json格式的字符串,我们可以使用web阶段学习过的json转换工具jackson进行转换,导入jackson坐标。在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多,因此,我们可以使用mvc的注解驱动代替上述配置。② 将需要回写的字符串直接返回,但此时需要通过@ResponseBody注解告知SpringMVC框架,方法。

个人博客,记录了本人学习的各种有趣的技术。 3219

Outlook Express 6 (OE6) for Win7/Win8/Win10

英文版 Outlook Express6.0, 兼容Win7/Win10/WinXP,解压就可用。

SpringMVC的数据响应(一)

SpringMVC的数据响应(一)

楠黎倾风的博客 3万+

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

【SpringMVC】请求数据和响应数据的处理

肝了一万字~

Le vent se lève, il faut tenter de vivre 932

SpringMVC_处理响应数据

距离上一篇博客已经过去三个月了。期间一直在忙毕业设计、以及了毕业找工作的事情,现在工作也步入正轨了,就过来继续分享知识啦。上次写的是关于SpringMVC的处理请求数据的内容,这次就写写SpringMVC是怎么处理响应数据的。

斗鹰的技术专栏 655

SpringMVC的数据响应

页面跳转,直接返回字符串,通过ModelAndView对象返回,回写数据,直接返回字符串,返回对象或集合。

知足上进,不负野心。 1842

SpringMVC(二)——处理请求和响应请求

一、处理请求 (一)处理请求的方式 1.ModelAndView: 通过setViewName方法 2.不响应: void + @Respository注解 3.直接指定响应页面: 返回值为String类型,返回结果指定跳转地址 4.重定向: 跳转地址前到redirect:前缀即可 5.HttpServletRequest和HttpServletResponse: 形参中声明这两个变量,然后通过相...

Nancy1709的博客 3230

springmvc 响应封装_SpringMVC框架 第5章 处理响应数据

第5章 处理响应数据5.1 SpringMVC输出模型数据概述5.1.1提供了以下几种途径输出模型数据ModelAndView: 处理方法返回值类型为 ModelAndView 时, 方法体即可通过该对象添加模型数据Map 及 Model: 入参为 springframework.ui.Model、org.springframework.ui.ModelMap 或 java.uti.Map 时,处...

weixin_39849800的博客 204

SpringMVC中返回数据Model,ModelAndView,ModelMap的区别

controller层的方法处理完后要返回视图,SpringMVC支持如下的返回方式: ModelAndView, Model, ModelMap, Map,View, String, void 1.ModelAndView @RequestMapping("/show1") public ModelAndView show1(HttpServletRequest request...

swebin的专栏 3477

Java进阶:SpringMVC的数据响应

互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!” />[外链图片转存中…(img-XrlOqDXB-1713310738499)][外链图片转存中…(img-GD2zW1Od-1713310738499)][外链图片转存中…(img-1oO4w9pv-1713310738500)]《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

2401_84004078的博客 879

SpringMVC教程2-处理及响应请求

SpringMVC中处理及响应请求 1.响应请求的方式 1.1ModeAndView /** * 查询方法 * @return */ @RequestMapping(&amp;amp;amp;amp;amp;quot;/query&amp;amp;amp;amp;amp;quot;) public ModelAndView query(){ System.out.println(&amp;amp;amp;amp;amp;quo

波波烤鸭的博客 3562

Spring(四): SpringMVC-数据响应,ModelAndView,Json的使用

一 页面跳转 1.直接返回字符串:此种方法会和视图解析器的前后缀拼接跳转 @RequestMapping("/quick") public String save(){ System.out.println("Controller save running..."); return "redirect:/success.jsp"; } 2.通过ModelAndView (1)直接返回ModelAndView 手动新建ModelAndView,

m0_55247145的博客 1791
上一篇: SpringMVC笔记--4处理请求数据
下一篇: SpringMVC笔记--6视图解析InternalResourceViewResolver
hancoder
博客等级 码龄9年 4135粉丝 167原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值