`

springmvc controller方法包含respone参数,不会merge vm

阅读更多

新增springmvc学习类目,下决心好好研究下底层!

今天遇到一个问题,应用首页无法merge vm文件。经过一番debug,最终发现:当control方法的参数包含HttpServletResponse 时(譬如:public void index(Model m, HttpServletRequest request, HttpServletResponse response)),当前respone会结束,而不做vm的merge:

 

ServletResponseMethodArgumentResolver设置ModelAndViewContainer.requestHandled=true,

使得

ServletInvocableHandlerMethod.invokeAndHandle

returnValue =null且ModelAndViewContainer.requestHandled=true的直接return,

而在return之后本留给returnValueHandlers.handleReturnValue(包括了merge vm)

 

ServletInvocableHandlerMethod.invokeAndHandle中关键代码:

写道
if (returnValue == null) {
if (isRequestNotModified(webRequest) || hasResponseStatus() || mavContainer.isRequestHandled()) {
mavContainer.setRequestHandled(true);
return;
}

}

 

 

 

 

分享到:
评论

相关推荐

    SpringMVC controller

    另外,SpringMVC在安全性方面也提供了很多支持,比如通过注解的方式来进行方法级别的安全控制,这使得安全配置更加精细和方便。 实际开发中,一个常见的应用是用户登录程序。在SpringMVC实现的用户登录程序中,通常...

    SpringMVC中一个Controller多个方法

    在Spring MVC中,Controller类通常使用@Controller注解标识,并且可以包含多个处理请求的方法,这些方法通过@RequestMapping或其变体进行映射。 例如,假设我们有一个名为`UserController`的Controller类,我们可以...

    SpringMVC Controller解析ajax参数过程详解

    6. SpringMVC的参数绑定机制:SpringMVC框架提供了一种参数绑定机制,允许开发者将请求参数绑定到Controller方法的参数中。在这里,我们使用了`@RequestBody`注解来将ajax请求的JSON数据绑定到User对象中。 7. ...

    解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题

    解决SpringMVC Controller 接收页面传递的中文参数出现乱码的问题 SpringMVC 是一个基于模型-视图-控制器(MVC)模式的Web应用程序框架,广泛应用于Java Web开发中。但是,在使用SpringMVC时,常见的一个问题是...

    详解SpringMVC Controller介绍及常用注解

    Controller 不会直接依赖于 HttpServletRequest 和 HttpServletResponse 等 HttpServlet 对象,它们可以通过 Controller 的方法参数灵活的获取到。 二、使用 @Controller 定义一个 Controller @Controller 用于...

    springmvc_controller_01

    在 "springmvc_controller_01" 包中,可能包含了示例代码、配置文件或者教程文档,帮助学习者理解如何创建和使用 Spring MVC Controller。通过这些资料,你可以进一步学习如何定义处理器方法、处理模型数据、实现...

    如何在springMVC的controller中获取request

    在上面的代码中,我们定义了一个 BaseController 超类,其中包含了 HttpServletRequest 和 HttpServletResponse 对象。然后,在 TestController 中,我们继承了 BaseController 超类,可以直接使用 request 和 ...

    springMVC基本配置(Controller+Service+Dao)

    在本文中,我们将深入探讨如何配置SpringMVC项目,包括控制层、业务逻辑层和持久层的设置。 首先,让我们从创建一个基本的SpringMVC项目结构开始。通常,一个SpringMVC项目会包含以下几个主要部分:`src/main/java`...

    springmvc_controller_02

    Controller方法可以返回ModelAndView对象,包含模型数据和视图名称,或者直接返回视图名称。例如: ```java @RequestMapping("/showUser") public ModelAndView showUser(@RequestParam("id") int userId) { ...

    SpringMVC URL 与 Controller 方法 初始化 源码赏析.vsdx

    SpringMVC URL 与 Controller 方法初始化源码流程 Visio 文档 文档可以直接通过Visio进行编辑,方便二次修改、学习

    Springmvc Controller接口代码示例

    在本文中,我们详细介绍了Springmvc Controller接口代码示例的实现细节,包括Controller接口的作用、Controller接口的实现、SimpleUrlHandlerMapping的作用、ViewResolver的作用等。通过本文的学习,读者可以更好地...

    聊聊springmvc中controller的方法的参数注解方式

    Spring MVC 中 Controller 方法参数注解方式详解 在 Spring MVC 框架中,Controller 中的方法参数可以使用注解来标识,这些注解可以让开发者更方便地处理请求参数。今天,我们将深入探讨 Spring MVC 中 Controller ...

    springMvc集合接收参数的用法

    Spring MVC提供了多种方式来接收前端传递的数据,包括单独的参数、数组、列表以及自定义对象。本教程将重点讲解如何接收ajax和form表单传递的集合参数。 一、接收Ajax传递的集合参数 1. JSON格式数据:Ajax通常...

    SpringMVC PPT_springmvc_

    SpringMVC 的主要组件包括 DispatcherServlet、HandlerMapping、Controller、ModelAndView 和 ViewResolver。 二、DispatcherServlet DispatcherServlet 是 SpringMVC 的前端控制器,它负责接收所有请求,并根据...

    详解springmvc之json数据交互controller方法返回值为简单类型

    本文将详细介绍在SpringMVC的Controller方法中如何处理返回值为简单类型的数据,并与前端进行JSON数据交互。 首先,要了解SpringMVC中的@RequestBody注解。这个注解的作用是将HTTP请求体中的JSON数据绑定到相应的...

    跟开涛学SpringMVC(4.3)Controller接

    《跟开涛学SpringMVC(4.3)Controller接口控制器详解》是针对Java开发者的一份深入学习资料,主要探讨了SpringMVC框架中的Controller组件。SpringMVC是Spring框架的一部分,专门用于处理Web应用程序的请求和响应。...

    尚硅谷SpringMVC部分全套教学文档笔记

    - SpringMVC支持自动将请求参数绑定到Controller的方法参数,这涉及到模型绑定和类型转换。 - 数据绑定可以是简单的类型如字符串,也可以是复杂类型如自定义对象,Spring会自动进行转换。 4. **@ModelAttribute...

    完整版 Java开发实训课程系列-SpringMVC框架技术教程 第4章 参数绑定 (共20页).pptx

    在SpringMVC参数绑定过程中,当客户端发送请求时,其中的key/value数据会被处理,通过参数绑定组件转化成Controller方法的形参。早期版本的SpringMVC使用`PropertyEditor`来进行字符串到Java对象的转换,而后期则...

    springmvc所有方法url映射获取

    通过重写dispatcherservlet的一个doservice方法把springmvc的url对应方法打印出来。 所需要做的是: 1,使用本文件作为原先springmvc的xml文件的dispatcherservlet。 2,启动项目,随意发送一个请求,可以在控制台...

Global site tag (gtag.js) - Google Analytics