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

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 员工管理系统

    大部分Java应用都是Web应用,展现层是Web... ⑦ 最终客户端得到返回的响应,这可能是一个普通的HTML页面,也可能是一个Excel电子表格、甚至是一个PDF文档等不一而足的视图形式,Spring的视图类型是异常丰富和灵活的。

    Spring MVC之DispatcherServlet详解_动力节点Java学院整理

    DispatcherServlet是前端控制器设计模式的实现,提供Spring Web MVC的集中访问点,而且负责职责的分派,而且与Spring IoC容器无缝集成,从而可以获得Spring的所有好处。 具体请参考第二章的图2-1。  ...

    用spring MVC 生成Excel和PDF.docx

    文档本身就是视图,从服务器以流的方式加上内容类型返回文档,客户端PC只要运行电子表格软件或PDF浏览软件就可以浏览。下面是一个简单实现的例子:界面两个button,一个实现excel ,一个pdf.为了使用Excel电子表格,...

    Spring MVC自定义日期类型转换器实例详解

     WEB层采用Spring MVC框架,将查询到的数据传递给APP端或客户端,这没啥,但是坑的是实体类中有日期类型的属性,但是你必须提前格式化好之后返回给它们。说真的,以前真没这样做过,之前都是一口气查询到数据,然后...

    Spring MVC 学习笔记

    3、 DispatcherServlet再把请求转交给HandlerAdapter,HandlerAdapter将会把处理器包装为适配器,从而支持多种类型的处理器(适配器模式).简单点说就是让我们知道接下来应该调用Handler处理器里面的什么方法 4、 ...

    rxjava-spring-boot-starter:RxJava Spring MVC集成

    为rx.Observable和rx.Single类型注册Spring的MVC返回值处理程序。 您不再需要使用阻塞操作或将值分配给DeferredResult或ListenableFuture,而可以声明REST端点返回Observable。 例: @RestController public ...

    spring-webmvc-pac4j:Spring Web MVC的安全性库:OAuth,CAS,SAML,OpenID Connect,LDAP,JWT ..

    spring-webmvc-pac4j项目是一个用于Spring Web MVC / Spring Boot Web应用程序和Web服务的简单而强大的安全性库。 它支持身份验证和授权,还支持注销和会话固定和CSRF保护等高级功能。 它基于Java 8,Spring Web MVC...

    SpringMVC笔记.zip

    SpringMVC 是一种基于 Java 的实现 MVC 设计模型的请求驱动类型的轻量级 Web 框架 ,属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。...

    spring+springmvc+mybatis_增删查改+事务处理

    spring+springmvc+mybatis整合的web项目,前台数据处理使用的jQuery+AJAX实现,springmvc不是采用的modalAndview模式,统一采用返回JSON数据类型,方面快捷。 数据库:mySql,服务器:tomcat6, jdk1.6

    9-Spring-mvc-国际化1

    简介:假设:正在开发一个支持多国语言的Web应用程序,要求系统能够根据客户端的系统的语言类型返回对应的界面:英文的操作系统返回英文界面,而中文的操作系统则返回中

    springmybatis

    mybatis实战教程mybatis in action之六与Spring MVC 的集成 mybatis实战教程mybatis in action之七实现mybatis分页源码下载 mybatis实战教程mybatis in action之八mybatis 动态sql语句 mybatis实战教程mybatis in ...

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

    本篇文章主要介绍了SpringMVC Controller 返回值的可选类型详解 ,spring mvc 支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void,有兴趣的可以了解一下

    Spring-Reference_zh_CN(Spring中文参考手册)

    2.5.1. Spring MVC的表单标签库 2.5.2. Spring MVC合理的默认值 2.5.3. Portlet 框架 2.6. 其他特性 2.6.1. 动态语言支持 2.6.2. JMX 2.6 .3. 任务规划 2.6.4. 对Java 5(Tiger)的支持 2.7. 移植到Spring 2.0 ...

    Spring中文帮助文档

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring API

    2.5.1. Spring MVC合理的默认值 2.5.2. Portlet 框架 2.5.3. 基于Annotation的控制器 2.5.4. Spring MVC的表单标签库 2.5.5. 对Tiles 2 支持 2.5.6. 对JSF 1.2支持 2.5.7. JAX-WS支持 2.6. 其他 2.6.1. 动态...

    Spring.3.x企业应用开发实战(完整版).part2

    Spring3.0是Spring在积蓄了3年之久后,隆重推出的一个重大升级版本,进一步加强了Spring作为Java领域第一开源平台的翘楚地位。  Spring3.0引入了众多Java开发者翘首以盼的新功能和新特性,如OXM、校验及格式化框架...

    ArchetypeProject:Spring Web 项目原型(创建原型)

    REST API 实现(返回类型为 JSON) 使用 Mockito 和 JUnit 实现 TDD 使用 jquery 的屏幕组合 增加Spring MVC的多语言支持功能 返还样品的准备工作 JDK 7.0 或更高版本 Tomcat 7 或更高版本 必须在本地安装 Oracle...

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

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

    轻量级java web MVC框架

    一个非常简单的MVC框架,实现了类似Spring MVC的基本功能。 1、包括自动扫描绑定映射路径,只要在web.xml中指定扫描包,系统启动后会将请求url绑定到指定的处理方法上。如: 在web.xml中定义如下: &lt;param-name&gt;...

    springMVC的数据传递

    实现返回复杂类型的,如@ResponseBody和ResponseEntity的使用

Global site tag (gtag.js) - Google Analytics