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(); } }
相关推荐
13. **移动设备检测**:Spring MVC 4.0引入了DeviceDelegatingViewResolver,可以根据用户的设备类型(如手机、平板、桌面)自动选择合适的视图。 14. **性能优化**:Spring MVC 4.0在内部做了许多性能优化,包括更...
Spring MVC是一种基于Java的实现了MVC设计模式的请求驱动类型的轻量级Web框架,使用了IoC容器,支持RESTful风格的应用程序开发。Spring MVC通过分离模型(Model)、视图(View)和控制器(Controller)来简化Web开发...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,专门用于构建可扩展和模块化的 Web 应用程序。在提供的压缩包文件中,包含了 Spring MVC 开发所需的一些核心库,这些库是 Spring MVC...
### Spring MVC 教程知识点详解 #### Spring Web MVC 框架简介 Spring Web MVC 是 Spring Framework 的一个重要组成部分,主要用于构建基于 Java 的 Web 应用程序。它提供了一个灵活且强大的 MVC 实现,使得开发者...
Spring MVC 是一个基于Java的轻量级Web应用框架,它是Spring框架的重要组成部分,主要用于构建Web应用程序的后端控制器。这个"Spring MVC 基础实例源码01"的资源很可能是为了帮助初学者理解Spring MVC的核心概念和...
**Spring MVC 5.0.3 知识点详解** Spring MVC是Spring框架的一个核心模块,专注于构建Web应用程序。在Spring MVC 5.0.3版本中,它提供了丰富的功能和改进,使得开发者能够更高效地开发RESTful服务、处理HTTP请求、...
10. **HandlerAdapter**:处理器适配器,用于调用Controller方法,因为不同的Controller可能会有不同的接口,HandlerAdapter使得Spring MVC可以适配各种类型的Controller。 在提供的"spring MVC.docx"文档中,可能...
Spring MVC 是一个强大的Java Web应用程序开发框架,是Spring框架的一部分,专注于处理Web请求和返回响应。它提供了模型-视图-控制器(MVC)架构,帮助开发者构建灵活、可维护的Web应用。在这个"spring mvc 整合包...
在Spring MVC中,DispatcherServlet作为核心组件负责请求分发,Controller处理请求并返回ModelAndView对象,ViewResolver解析模型数据并渲染视图。 2. **配置与启动** 配置Spring MVC通常涉及web.xml文件中的...
9. **HandlerAdapter**: 处理器适配器负责调用控制器的方法,Spring MVC 内置了多种适配器来支持不同的控制器类型。 10. **View Technologies**: Spring MVC 支持多种视图技术,如JSP、Thymeleaf、Velocity等,可以...
Spring MVC是Spring框架的一个核心模块,专门用于处理Web应用程序的请求和响应。在这个"Spring MVC 3_demo"中,我们重点探讨的是使用注解来实现Spring MVC 3的应用。注解在Spring MVC中扮演着重要角色,它们简化了...
Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。在这个学习笔记中,我们将深入探讨如何在Spring MVC中处理JSON格式的数据,包括输入和输出。JSON(JavaScript Object Notation)是一...
Spring MVC 是一个广泛使用的 Java Web 开发框架,它实现了MVC(Model-View-Controller)设计模式,使得开发者可以更高效地构建可维护且松耦合的Web应用程序。在这个学习记录总结中,我们将深入理解Spring MVC的核心...
DispatcherServlet 是 Spring MVC 的核心组件之一,负责接收请求并分发给合适的控制器进行处理。其启动流程大致如下: 1. **类的继承关系**:`DispatcherServlet` 继承自 `FrameworkServlet`,而 `FrameworkServlet...
8. **HandlerAdapter**:适配器模式在Spring MVC中得到应用,HandlerAdapter允许DispatcherServlet与不同的Controller类型进行交互,即使Controller的实现方式不同。 9. **视图解析器(ViewResolver)**:视图解析...
8. **Conversion and Validation**: Spring MVC提供了一套完整的数据绑定、类型转换和验证机制。比如,@RequestParam、@PathVariable等注解用于从请求参数中获取数据,@Valid用于数据验证。 9. **Tiles, FreeMarker...
Spring MVC通过DispatcherServlet接收请求,然后根据请求信息(如URL和方法类型)将请求分发到对应的控制器(Controller)。Controller处理业务逻辑后,通常会返回一个ModelAndView对象,其中包含了视图名称和模型...