`
Luob.
  • 浏览: 1584366 次
  • 来自: 上海
社区版块
存档分类
最新评论

springMVC对于controller处理方法返回值的可选类型

阅读更多

对于springMVC处理方法支持支持一系列的返回方式:

ModelAndView
Model
ModelMap
Map
View
String
Void


ModelAndView
@RequestMapping(method=RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView modelAndView = new ModelAndView("/user/index");
        modelAndView.addObject("xxx", "xxx");
        return modelAndView;
    }
PS:对于ModelAndView构造函数可以指定返回页面的名称,也可以通过setViewName方法来设置所需要跳转的页面;

PPS:返回的是一个包含模型和视图的ModelAndView对象;
@RequestMapping(method=RequestMethod.GET)
    public ModelAndView index(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("xxx", "xxx");
        modelAndView.setViewName("/user/index");
        return modelAndView;
    }




Model
一个模型对象,主要包含spring封装好的model和modelMap,以及java.util.Map,当没有视图返回的时候视图名称将由requestToViewNameTranslator决定;

@RequestMapping(method=RequestMethod.GET)
    public Map<String, String> index(){
        Map<String, String> map = new HashMap<String, String>();
        map.put("1", "1");
        //map.put相当于request.setAttribute方法
        return map;
    }
PS:响应的view应该也是该请求的view。等同于void返回。


String

对于String的返回类型,笔者是配合Model来使用的;



@RequestMapping(method = RequestMethod.GET)
    public String index(Model model) {
        String retVal = "user/index";
        List<User> users = userService.getUsers();
        model.addAttribute("users", users);
 
        return retVal;
    }
或者通过配合@ResponseBody来将内容或者对象作为HTTP响应正文返回(适合做即时校验);

@RequestMapping(value = "/valid", method = RequestMethod.GET)
    public @ResponseBody
    String valid(@RequestParam(value = "userId", required = false) Integer userId,
            @RequestParam(value = "logName") String strLogName) {
        return String.valueOf(!userService.isLogNameExist(strLogName, userId));
 
    }
ps:返回字符串表示一个视图名称,这个时候如果需要在渲染视图的过程中需要模型的话,就可以给处理器添加一个模型参数,然后在方法体往模型添加值就可以了,


Void

当返回类型为Void的时候,则响应的视图页面为对应着的访问地址

@Controller
@RequestMapping(value="/type")
public class TypeController extends AbstractBaseController{
 
    @RequestMapping(method=RequestMethod.GET)
    public void index(){
        ModelAndView modelAndView = new ModelAndView();
        modelAndView.addObject("xxx", "xxx");
    }
}
返回的结果页面还是:/type

PS:这个时候我们一般是将返回结果写在了HttpServletResponse 中了,如果没写的话,spring就会利用RequestToViewNameTranslator 来返回一个对应的视图名称。如果这个时候需要模型的话,处理方法和返回字符串的情况是相同的。
分享到:
评论

相关推荐

    SpringMVC 方法四种类型返回值总结(你用过几种)

    主要介绍了SpringMVC 方法四种类型返回值总结(你用过几种),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

    Java实训教程 Java软件开发实战 Java开发框架介绍 SpringMVC_4_方法返回值 共25页.pptx

    在SpringMVC中,控制器方法的返回值类型非常关键,因为它决定了如何处理请求并响应给客户端。接下来,我们将详细介绍几种常见的返回值类型: ### 1. `ModelAndView` `ModelAndView`是最基本也是最常用的返回类型之...

    详解利用SpringMVC拦截器控制Controller返回值

    在这个场景中,我们利用拦截器来控制Controller方法的返回值,特别是当方法未实现或者需要在开发阶段返回模拟数据时。下面将详细介绍如何实现这一功能。 首先,我们需要定义两个注解:`Debug` 和 `StringResult`。 ...

    springmvc_controller_01

    3. **处理方法**:Controller 类中的方法称为处理器方法,通过 `@RequestMapping` 或其子注解(如 `@GetMapping`, `@PostMapping` 等)来映射 HTTP 请求。这些方法接收请求参数,进行业务处理,然后返回响应数据。 ...

    SpringMVC中一个Controller多个方法

    在实际应用中,我们经常需要在一个Controller类中定义多个方法,以处理不同类型的HTTP请求。Spring MVC允许我们通过注解来实现这一目标,使得代码更加模块化和可维护。 首先,了解Spring MVC的基本结构至关重要。它...

    SpringMVC Controller 返回值的可选类型详解

    本文将详细解析Spring MVC Controller支持的多种返回值类型,以及它们各自的用法。 1. ModelAndView `ModelAndView`是Spring MVC提供的一种组合模型数据和视图的类。它允许开发者同时指定视图名称和模型数据。例如...

    Spring MVC处理方法返回值过程解析

    Spring MVC是 Java Web 应用程序框架,提供了灵活的处理方法返回值机制,支持多种返回值类型,包括ModelAndView、Model、ModelMap、Map、View、String、Void、Object等。本文将详细介绍Spring MVC处理方法返回值过程...

    SpringMVC controller

    SpringMVC通过将Web层设计成MVC(Model-View-Controller)模式,可以使得前后端代码分离,增强程序的可维护性和可扩展性。 首先,SpringMVC作为Spring框架的一部分,继承了Spring的诸多优点,例如依赖注入(DI)和...

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

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

    ssm_Controller方法的返回值

    forward方式相当于“request.getRequestDispatcher().forward(request,response)”,转发后浏览器地址栏还是原来的地址。转发并没有执行新的request和response,而是和转发前的请求共用一个request和response。...

    详解SpringMVC Controller介绍及常用注解

    SpringMVC Controller 是 Spring 框架中的一个核心组件,负责处理由 DispatcherServlet 分发的请求,封装业务处理层处理后的数据成一个 Model,然后返回给对应的 View 进行展示。在 SpringMVC 中,提供了一个非常...

    Java实训教程 Java软件开发实战 Java开发框架SpringMVC介绍 共10个章节.rar

    SpringMVC_4_方法返回值 共25页.pptx SpringMVC_5_常用注解 共22页.pptx SpringMVC_6_数据校验 共26页.pptx SpringMVC_7_国际化 共9页.pptx SpringMVC_8_标签库 共39页.pptx SpringMVC_9_文件上传 共9页.pptx ...

    如何在springMVC的controller中获取request

    在 SpringMVC 中获取 Request 对象 ...在 SpringMVC 中获取 Request 对象有多种方法,但这两种方法是最常用的。无论是使用 RequestContextHolder 还是继承超类,这两种方法都可以满足我们的需求。

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

    以上就是SpringMVC的基本配置,通过控制层、业务逻辑层和持久层的分离,我们可以构建出松耦合、可维护性强的Web应用。在实际项目中,还可以加入更多功能,如异常处理、安全控制、缓存管理等,以满足复杂的应用需求。

    跟开涛学SpringMVC(4.6)Controller接

    在本课程"跟开涛学SpringMVC(4.6)Controller接"中,我们将深入探讨SpringMVC框架中的Controller接口控制器。这个部分是SpringMVC核心组件之一,用于处理HTTP请求并返回响应。Controller接口提供了将用户请求映射到...

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

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

    获取RequestMapping所有的方法和路径|SpringMvc的Controller

    通过编译文件的class路径,反射得到Class,获取RequestMapping对应注解和value路径

    一个简单的springMVC入门项目

    8. **异常处理**:SpringMVC提供了一种优雅的方式处理程序中的异常,可以定义全局的异常处理器,或者在Controller方法上使用`@ExceptionHandler`注解来捕获特定异常。 9. **国际化与本地化**:SpringMVC支持多语言...

Global site tag (gtag.js) - Google Analytics