要将一个图书信息转化为JSON视图的功能,只要传递图书信息给它,它就能将信息转化为视图:
@RequestMapping("/book/showBookJsonInfo") public ModelAndView showBookJson(Book book){ var mv = new ModelAndView(); mv.addObject("book",book); mv.setView(new MappingJackson2JsonView()); return mv; }
现在的需求是,每当新增一个图书信息时,需要将其数据(图书编号会回填)以json视图的形式展示给请求者。在数据保存到数据库后,由数据库返回图书编号,再将图书信息传递给showBookJson方法,就可以展示json视图给请求者了:
@RequestMapping("/book/saveBook") //Model为重定向数据模型,Spring Mvc会自动初始化它 public String saveBook(Book book,Model model){ service.save(book);// 插入图书后,会回填图书编号 //绑定重定向数据模型 model.addAttribute("book",book);//只能传递简单属性,pojo需要flash属性 return "redirect:./showBookJsonInfo"; }
这里的Model代表一个数据模型,可以给它附加上对应的数据模型。Spring MVC有一个约定,当返回的字符串中带有redirect的时候,它就会认为需要的是一个重定向,而事实上,不仅可以通过返回字符串来实现重定向,也可以通过返回视图来实现重定向
@RequestMapping("/saveBook2") public ModelAndView saveBook2(ModelAndView mv,Book book){ mv.addObject("book",book);//只能传递简单属性,pojo需要flash属性 mv.setView("redirect:./book/showBookJsonInfo"); return mv; }
经测试,这样并不能将参数顺利传递给重定向的地址,因为在url重定向的过程中,http的重定向参数是以字符串传递的,如果需要传递图书pojo来完成任务,这个时候Springmvc提供了一个方法-----flash属性,需要提供的数据模型就是一个RedirectAttributes:
@RequestMapping("/saveBook3") public String saveBook3(RedirectAttributes ra,Book book){ ra.addFlashAttribute(book);//绑定重定向数据模型 return "redirect:./showBookJsonInfo"; }
这样就能够传递pojo给下一个地址了,那么它是如何做到的呢?使用addFlashAttribute方法后,springmvc会将数据保存到session中(session在同一个会话有效),重定向后就会将其清除, 这样就能够传递给下一个地址了。
相关推荐
总结来说,Spring MVC 是一个功能强大且灵活的 Web 开发框架,它提供了一套完整的解决方案,包括请求处理、视图渲染、数据绑定、异常处理以及与其他 Spring 模块的无缝集成。通过深入学习和实践,开发者可以构建出...
在实际的开发过程中,你可能会遇到如国际化、数据验证、异常处理、视图重定向等场景,Spring MVC都提供了相应的机制来处理。例如,使用@ExceptionHandler注解可以捕获并处理特定类型的异常,而使用Model对象可以方便...
根据提供的文件信息,我们可以将其中的关键知识点归纳如下: ### Spring MVC 框架简介 ...通过对上述知识点的学习和理解,可以更好地掌握 Spring MVC 的使用方法,进而开发出更加优秀的 Web 应用程序。
十四、Spring MVC转发与重定向:详细讲解了在Spring MVC中如何使用转发和重定向操作来处理请求的导航。 十五、Spring MVC处理ajax请求:讲解了如何在Spring MVC中处理异步JavaScript和XML(AJAX)请求,包括配置和...
Spring MVC 是一个功能强大且灵活的框架,它不仅提供了基础的 MVC 实现,还包含了大量高级特性和工具来支持现代 Web 开发的需求。无论是初学者还是有经验的开发者,都能从中受益,构建高效、健壮的 Web 应用。
在Spring MVC框架中,视图和视图解析器是实现MVC模式中“V”(View)部分的关键组件。它们负责将处理完的数据转化为用户可以理解的格式,并展示在浏览器上。视图解析器则是连接控制器与视图的桥梁,它负责根据返回的...
DispatcherServlet 是 Spring MVC 中的核心组件之一,它作为前端控制器的角色,主要负责以下任务: - **初始化**:读取配置文件并初始化 Spring 容器。 - **请求处理**:处理所有进入系统的 HTTP 请求。 - **响应...
在Spring MVC框架中,请求转发和重定向是两种常见的处理HTTP请求的方式,它们在处理用户请求和导航页面之间有明显的差异。理解这两种方法的工作原理和使用场景对于开发高效的Web应用程序至关重要。 请求转发...
Spring MVC 是一个强大的Java web应用程序开发框架,它简化了基于模型-视图-控制器(MVC)架构的应用程序构建过程。在使用Spring MVC时,有若干关键点需要注意,以确保高效、稳定和易于维护的代码。 1. **配置**: ...
本篇将深入探讨Spring MVC中如何封装参数,以及如何在不同组件之间传递。 首先,Spring MVC通过`@RequestParam`注解来获取HTTP请求中的参数。例如,如果我们有一个POST请求,其中包含一个名为`username`的参数,...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它为构建 Web 应用程序提供了一个模型-视图-控制器(MVC)架构。在 Spring MVC 中,Model 是核心组件之一,负责处理业务逻辑和数据管理。下面我们将深入探讨 ...
首先,Spring MVC 的核心组件包括DispatcherServlet、ModelAndView、Controllers以及各种HandlerMapping和HandlerAdapter。DispatcherServlet是入口点,负责接收HTTP请求并分发到相应的Controller处理。Controller是...
Spring MVC是一个流行的Java框架,用于开发Web应用程序,遵循MVC(Model-View-Controller)设计模式。MVC模式将应用程序分成三个主要部分:模型(Model)、视图(View)和控制器(Controller)。模型代表业务对象和...
转发与重定向是Web开发中常用的两种请求处理方式,Spring MVC提供了简单的方法来实现带参数的重定向。 处理Ajax请求也是Spring MVC的强大功能之一,通过注解和配置可以方便地与前端进行异步交互。配置文件的编写在...
在实际开发中,我们还需要配置Spring MVC的 DispatcherServlet、映射处理器(HandlerMapping)、视图解析器(ViewResolver)等。同时,`@RequestMapping`注解用于映射URL到控制器方法,`@PathVariable`用于从URL路径...
`mvc.xml` 是 Spring MVC 的核心配置文件之一,用于配置 Spring MVC 的各种组件。示例配置包括但不限于: ```xml <!-- 启用注解驱动 --> <mvc:annotation-driven/> <!-- 配置视图解析器 --> <bean class="org....
- **SpringMVC**:Spring框架的一个模块,它是Java Web开发中最常用的MVC框架之一。SpringMVC提供了处理HTTP请求、数据绑定、视图渲染等功能,简化了Web应用的开发。 - **MVC框架**:这里指的是使用MVC模式的框架,...
文档中提到的 DispatcherServlet 是 Spring MVC 中的一个核心组件,它负责将请求分发给不同的处理器,并提供了一种简单而有效的方式来定制 Web 应用程序的行为。DispatcherServlet 的配置、处理流程以及 ...
Spring MVC 通过分离模型、视图和控制器组件来简化 Web 开发。Spring MVC 4.2.4.RELEASE 是 Spring MVC 框架的一个版本号,中文文档对这个版本进行了详细的介绍和说明。 Spring MVC 框架简介部分讲解了该框架的基本...