`
youyu4
  • 浏览: 440318 次
社区版块
存档分类
最新评论

Spring MVC 之返回类型

阅读更多

Spring MVC 之返回类型

 

其实Spring的返回类型可以支持多种

     

      1. ModelAndView

      2. String

      3. void

      4. Map

      5. Model

 

      6. object(app后端开发经常会这么用)

 

 

代码如下

package com.wangbiao.springMVC;  
  
import java.util.HashMap;  
import java.util.Map;  
  
import javax.servlet.ServletContext;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
  
import org.springframework.context.ApplicationContext;  
import org.springframework.stereotype.Controller;  
import org.springframework.ui.Model;  
import org.springframework.web.bind.annotation.RequestMapping;  
import org.springframework.web.bind.annotation.RequestMethod;  
import org.springframework.web.servlet.ModelAndView;  
import org.springframework.web.servlet.View;  
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;  
@Controller  
@RequestMapping("/return")  
public class HelloWorld extends  MultiActionController{  
  
    /* 
     * 返回值为ModelAndView类型的 
     */  
    public ModelAndView sayHelloWorld(HttpServletRequest request, HttpServletResponse response) {  
        String param = request.getParameter("param");  
        System.out.println("springMVC测试:helloWorld;"+param);  
        ModelAndView mv = new ModelAndView();  
        User user = (User) this.getApplicationContext().getBean("user");  
        mv.addObject("content", "springMVC HelloWorld:"+param);  
        mv.setViewName("springMVC/helloWorld");  
        ServletContext ctx = this.getServletContext();    
        return mv;  
    }  
    /* 
     * 返回值为String类型的,视图名就是返回值 
     */  
    @RequestMapping(value="/returnString",method=RequestMethod.GET)  
    public String returnString(Model model) {  
        model.addAttribute("test", "return string!!!");  
        System.out.println("springMVC测试:helloWorld;");  
        return "return/returnString";  
    }  
      
    /* 
     * 返回值是void类型的,由于没有返回值 
     * 它默认的展示视图名和url中的一段是一样的即returnVoid.jsp 
     */  
    @RequestMapping("/returnVoid")  
    public void returnVoid(Model model){  
        model.addAttribute("test", "return void!!!");  
    }  
      
    /* 
     * 返回值是void类型的,由于没有指定视图名 
     * 它默认的展示视图名和url中的一段是一样的即returnVoid.jsp 
     */  
    @RequestMapping("/returnModel")  
    public Model returnModel(Model model){  
        model.addAttribute("test", "return Model!!!");  
        return model;  
    }  
      
    /* 
     * 返回值是void类型的,由于没有指定视图名 
     * 它默认的展示视图名和url中的一段是一样的即returnVoid.jsp 
     */  
    @RequestMapping("/returnMap")  
    public Map returnMap(Model model){  
        Map map = new HashMap<String,String>();  
        map.put("test", "return map!!!");  
        return map;  
    }  
      
  
} 

 

如果是返回Object,可以这么用@ResponseBody

@Controller
public class LoginController {

    @Autowired
    private CmsUserSessionService cmsUserSessionService;

    @ResponseBody
    @RequestMapping(value = "/login", method = RequestMethod.POST)
    public ResultVO loginUser(final HttpServletRequest request, final UserLoginParam param) throws Exception {
	    AssertUtil.notBlank(param.getUserName(), "userName is required");
	    AssertUtil.notBlank(param.getPassword(), "password is required");

	    final String userAgent = request.getHeader("User-Agent");
        final String ip = RequestUtil.getRealIp(request);
        final ResultVO result = new ResultVO();

        result.setData(cmsUserSessionService.login(param, userAgent, ip));
        result.setMessage("Login success");
        return result;
	}
}

 

或者用@RestController,就不需要@ResponseBody了

@RestController
public class UserSessionController extends BaseController {

    @Autowired
    private UserSessionService userSessionService;

    @Autowired
    private UserDao userDao;

    @RequestMapping(value = "/user/session", method = RequestMethod.POST)
    public ResultVO logoutUser(final Long userId, final Long logoutUserId) {
        final UserInfoDTO userInfo = userDao.findUserInfoByUserId(logoutUserId);
        Constants.sActivitiesLogger.info(" Action:[" + Constants.LOG_USER_LOGOUT + "] Payme ID:["+userInfo.getMemberId()+"]");
        userSessionService.logoutAllSessions(logoutUserId, LogoutSessionRemark.CS_CASE.toValue());
        return new SuccessVO();
    }
}

 

分享到:
评论

相关推荐

    spring mvc 4.0

    13. **移动设备检测**:Spring MVC 4.0引入了DeviceDelegatingViewResolver,可以根据用户的设备类型(如手机、平板、桌面)自动选择合适的视图。 14. **性能优化**:Spring MVC 4.0在内部做了许多性能优化,包括更...

    Spring MVC 教程快速入门 深入分析

    Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...

    spring mvc jar包

    Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专门用于构建可扩展和模块化的 Web 应用程序。在提供的压缩包文件中,包含了 Spring MVC 开发所需的一些核心库,这些库是 Spring MVC...

    Spring mvc 教程

    ### Spring MVC 教程知识点详解 #### Spring Web MVC 框架简介 Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者...

    Spring MVC 基础实例源码01

    Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个"Spring MVC 基础实例源码01"的资源很可能是为了帮助初学者理解Spring MVC的核心概念和...

    Spring mvc5.0.3 所有jar包

    **Spring MVC 5.0.3 知识点详解** Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、...

    spring-MVC.zip_Java spring mvc_spring mvc_spring mvc

    10. **HandlerAdapter**:处理器适配器,用于调用Controller方法,因为不同的Controller可能会有不同的接口,HandlerAdapter使得Spring MVC可以适配各种类型的Controller。 在提供的"spring MVC.docx"文档中,可能...

    spring mvc 整合包

    Spring MVC 是一个强大的Java Web应用程序开发框架,是Spring框架的一部分,专注于处理Web请求和返回响应。它提供了模型-视图-控制器(MVC)架构,帮助开发者构建灵活、可维护的Web应用。在这个"spring mvc 整合包...

    精通Spring MVC4

    在Spring MVC中,DispatcherServlet作为核心组件负责请求分发,Controller处理请求并返回ModelAndView对象,ViewResolver解析模型数据并渲染视图。 2. **配置与启动** 配置Spring MVC通常涉及web.xml文件中的...

    spring mvc

    9. **HandlerAdapter**: 处理器适配器负责调用控制器的方法,Spring MVC 内置了多种适配器来支持不同的控制器类型。 10. **View Technologies**: Spring MVC 支持多种视图技术,如JSP、Thymeleaf、Velocity等,可以...

    spring mvc 3_demo

    Spring MVC是Spring框架的一个核心模块,专门用于处理Web应用程序的请求和响应。在这个"Spring MVC 3_demo"中,我们重点探讨的是使用注解来实现Spring MVC 3的应用。注解在Spring MVC中扮演着重要角色,它们简化了...

    Spring MVC 学习笔记 九 json格式的输入和输出

    Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一...

    Spring MVC 学习记录总结1

    Spring MVC 是一个广泛使用的 Java Web 开发框架,它实现了MVC(Model-View-Controller)设计模式,使得开发者可以更高效地构建可维护且松耦合的Web应用程序。在这个学习记录总结中,我们将深入理解Spring MVC的核心...

    Spring MVC框架简介和使用

    DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收请求并分发给合适的控制器进行处理。其启动流程大致如下: 1. **类的继承关系**:`DispatcherServlet` 继承自 `FrameworkServlet`,而 `FrameworkServlet...

    Spring MVC框架的各种依赖包下载

    8. **HandlerAdapter**:适配器模式在Spring MVC中得到应用,HandlerAdapter允许DispatcherServlet与不同的Controller类型进行交互,即使Controller的实现方式不同。 9. **视图解析器(ViewResolver)**:视图解析...

    spring mvc框架源码

    8. **Conversion and Validation**: Spring MVC提供了一套完整的数据绑定、类型转换和验证机制。比如,@RequestParam、@PathVariable等注解用于从请求参数中获取数据,@Valid用于数据验证。 9. **Tiles, FreeMarker...

    Spring mvc+hibernate+mysql Demo

    Spring MVC通过DispatcherServlet接收请求,然后根据请求信息(如URL和方法类型)将请求分发到对应的控制器(Controller)。Controller处理业务逻辑后,通常会返回一个ModelAndView对象,其中包含了视图名称和模型...

Global site tag (gtag.js) - Google Analytics