spring mvc处理方法支持如下的返回方式:ModelAndView, Model, ModelMap, Map,View, String, void。下面将对具体的一一进行说明:
ModelAndView
- @RequestMapping("/show1")
- public ModelAndView show1(HttpServletRequest request,
- HttpServletResponse response) throws Exception {
- ModelAndView mav = new ModelAndView("/demo2/show");
- mav.addObject("account", "account -1");
- return mav;
- }
通过ModelAndView构造方法可以指定返回的页面名称,也可以通过setViewName()方法跳转到指定的页面 ,
使用addObject()设置需要返回的值,addObject()有几个不同参数的方法,可以默认和指定返回对象的名字。
调用addObject()方法将值设置到一个名为ModelMap的类属性,ModelMap是LinkedHashMap的子类,
具体请看类。
Model 是一个接口, 其实现类为ExtendedModelMap,继承了ModelMap类。
Map
- @RequestMapping("/demo2/show")
- public Map<String, String> getMap() {
- Map<String, String> map = new HashMap<String, String>();
- map.put("key1", "value-1");
- map.put("key2", "value-2");
- return map;
- }
在jsp页面中可直通过${key1}获得到值, map.put()相当于request.setAttribute方法。
写例子时发现,key值包括 - . 时会有问题.
View 可以返回pdf excel等,暂时没详细了解。
String 指定返回的视图页面名称,结合设置的返回地址路径加上页面名称后缀即可访问到。
注意:如果方法声明了注解@ResponseBody ,则会直接将返回值输出到页面。
例如:
- @RequestMapping(value = "/something", method = RequestMethod.GET)
- @ResponseBody
- public String helloWorld() {
- return "Hello World";
- }
上面的结果会将文本"Hello World "直接写到http响应流。
- @RequestMapping("/welcome")
- public String welcomeHandler() {
- return "center";
- }
对应的逻辑视图名为“center”,URL= prefix前缀+视图名称 +suffix后缀组成。
void 如果返回值为空,则响应的视图页面对应为访问地址
- @RequestMapping("/welcome")
- public void welcomeHandler() {}
此例对应的逻辑视图名为"welcome"。
小结:
1.使用 String 作为请求处理方法的返回值类型是比较通用的方法,这样返回的逻辑视图名不会和请求 URL 绑定,具有很大的灵活性,而模型数据又可以通过 ModelMap 控制。
2.使用void,map,Model 时,返回对应的逻辑视图名称真实url为:prefix前缀+视图名称 +suffix后缀组成。
3.使用String,ModelAndView返回视图名称可以不受请求的url绑定,ModelAndView可以设置返回的视图名称。
Model model,HttpServletRequest request, ModelMap map声明变量
request.getSession().setAttribute("test", "haiwei2Session");
request.setAttribute("test", "haiwei1request");
map.addAttribute("test", "haiweiModelMap");
model.addAttribute("test", "haiweiModel");
我通过${test}这个方式取值,优先取Model和ModelMap的,Model和ModelMap是同一个东西,谁最后赋值的就取谁的,然后是request,最后是从session中获取
相关推荐
2. **异常处理:** 在处理前端传来的数据时,应当考虑到可能出现的异常情况,如数据类型不匹配等,并作出相应的处理。 3. **安全性考虑:** 对于敏感信息的传输,应当采取加密措施,确保数据安全。 以上就是关于...
SpringMVC返回图片的几种方式小结 在SpringMVC中,返回图片的方式有多种,主要包括返回二进制图片、返回图片的HTTP地址、返回base64格式的图片、直接返回二进制的图片等。下面是对这些方式的详细介绍。 I. 返回二...
Controller类通常用@Controller注解标识,用来处理具体的请求,返回相应的视图名称或数据。视图页面则利用JSP、HTML等技术,展示数据或提供交互界面。配置文件中,需要声明组件扫描路径、视图解析器等,确保...
- 方法的返回类型可以是`Map, Object>`、自定义的Java对象或者`String`(如果JSON字符串已经构建好)。Jackson库会自动将这些类型转换为JSON格式。 5. **数据转换**: - 如果你的返回类型是自定义Java对象,那么...
主要介绍了SpringMVC 方法四种类型返回值总结(你用过几种),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
SpringMVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等,可以根据项目需求选择合适的视图技术。 8. **国际化与主题** SpringMVC提供国际化和主题支持,通过`ResourceBundleMessageSource`和`ThemeSource`...
SpringMVC允许定义全局或特定类型的异常处理器,通过@ControllerAdvice和@ExceptionHandler注解实现。 8. **视图解析**: 视图解析器如InternalResourceViewResolver,负责根据视图名查找实际的视图资源。例如,...
对于异常处理,SpringMVC提供了`@ExceptionHandler`注解,可以用来捕获并处理特定类型的异常,创建统一的错误页面或返回JSON响应。 在实际项目中,我们可能还需要配置拦截器(Interceptor),它们可以对请求和响应...
3. **HandlerAdapter**:适配不同的Controller,确保DispatcherServlet可以调用任何类型的Controller方法。 4. **ViewResolver**:解析逻辑视图名到实际视图,如JSP页面。 在"SpringMVC+Mybatis demo"中,Service层...
本指南提供了 SpringMVC 的核心思想、框架特点、入门示例、参数传递、标签介绍、拦截器、类型转换、JSON 格式数据的输入和输出、文件上传、国际化和本地化、验证等方面的知识点,旨在帮助开发者快速掌握 SpringMVC ...
- SpringMVC支持自动将请求参数绑定到Controller的方法参数,这涉及到模型绑定和类型转换。 - 数据绑定可以是简单的类型如字符串,也可以是复杂类型如自定义对象,Spring会自动进行转换。 4. **@ModelAttribute...
随着版本的更新,SpringMVC不断引入新的特性和改进,例如SpringMVC 3.1中的生产者、消费者请求限定,增强了对请求类型的控制,使得API设计更加灵活。 以上只是SpringMVC框架的部分内容,实际使用中还包括视图模板...
5. **HandlerAdapter**:处理器适配器允许SpringMVC支持各种类型的控制器。它调用控制器的方法并处理返回的结果。 6. **Controller**:控制器是用户接口与业务逻辑之间的桥梁,接收请求,调用服务层进行处理,并将...
10. **MultipartResolver**:处理文件上传的组件,使得SpringMVC可以方便地处理multipart/form-data类型的请求。 11. **RESTful API**:SpringMVC支持创建RESTful风格的Web服务,通过HTTP动词(GET、POST、PUT、...
它支持多种数据类型,如JSON、数组、几何类型等,并且具有强大的事务处理能力。在Java应用中,我们通常使用JDBC API来连接和操作PostgreSQL数据库,Spring框架提供的JdbcTemplate或JPA等高级接口也可以简化数据库...
- `HandlerAdapter`:处理器适配器,确保DispatcherServlet能调用任何类型的Controller。 - `ViewController`:视图控制器,处理逻辑结果并返回视图名。 - `ViewResolver`:视图解析器,将视图名转换为实际的视图...
SpringMVC提供MultipartFile接口处理文件上传,而文件下载则可以通过StreamingResponseBody或者直接返回文件路径实现。这些功能的实现涉及了流处理和响应头设置,确保了文件传输的正确性和效率。 异常处理在Web应用...
5. **ViewResolver**:解析视图名称并返回对应的视图对象,支持多种视图技术如JSP、Freemarker、Thymeleaf等。 6. **AOP(面向切面编程)**:在SpringMVC中,AOP用于实现拦截器、事务管理等功能。手写时需实现切面...
- **HandlerAdapter**:处理器适配器,允许SpringMVC支持多种类型的处理器。 - **ModelAndView**:模型和视图,处理器返回的结果,包含了模型数据和视图名称。 - **ViewResolver**:视图解析器,根据逻辑视图名...