通过ModelAndView 访问
@RequestMapping(value="/index") public ModelAndView index(User user){ user.setAge("A"); user.setSex("B"); // ModelAndView mav = new ModelAndView(); // mav.setViewName("message"); // 不需要加扩展名 ModelAndView mav = new ModelAndView("message"); mav.addObject(user); return mav; }
访问数据模型@ModelAttribute
使用方式一
@RequestMapping(value="/index") public String index(){ return "message"; } @ModelAttribute public void populateModel(@RequestParam String age,@RequestParam String sex,Model model){ model.addAttribute("str", "modelAttribute ==== > " + age + " :" + sex); }
当URL访问index方法时,会在之前掉用populateModel这个方法,执行完成后,再执行index()
方式二(返回对象)
@RequestMapping(value="/index") public String index(){ return "message"; } @ModelAttribute public User populateModel(){ User user = new User(); user.setAge("10"); return user; }
model名称无需要指定,它由返回类型隐含表示,如这个方法返回User类型,那么这个model属性的名称是user。
@ModelAttribute(value="myUser") public User populateModel(){ User user = new User(); user.setAge("10"); return user; }
也可指定返回名称,指定后,返回的对象名称是myUser,不指定,则返回User.
使用方式三(合并对象进行返回)
@RequestMapping(value="/index") public String index(User user){ user.setSex("男"); return "message"; } @ModelAttribute public User populateModel(){ User user = new User(); user.setAge("10"); return user; }
使用方式四(对象合并指定对象名称)
@RequestMapping(value="/index") public String index(@ModelAttribute("myUser")User user){ user.setSex("男"); return "message"; } @ModelAttribute(value="myUser") public User populateModel(){ User user = new User(); user.setAge("10"); return user; }
public String test(@ModelAttribute("user") UserModel user)
此处多了一个注解@ModelAttribute("user"),它的作用是将该绑定的命令对象以“user”为名称添加到模型对象中供视图页面展示使用。我们此时可以在视图页面使用${user.username}来获取绑定的命令对象的属性。
@SessionAttributes注解
@Controller @SessionAttributes("myUser") // 把对象myUser自动保存到session中 public class TController { @RequestMapping(value="/index") public String index(@ModelAttribute("myUser")User user){ user.setSex("男"); return "message"; } @ModelAttribute(value="myUser") public User populateModel(){ User user = new User(); user.setAge("10"); return user; } @RequestMapping(value="/out") public String out(@ModelAttribute("myUser")User user,SessionStatus sessionStatus){ user.setSex("男"); sessionStatus.setComplete(); // 清除本处理器对应的会话属性 return "message"; } }
相关推荐
本实例代码着重讲解了SpringMVC中的四种映射方式以及拦截器的实现,这对于理解和掌握SpringMVC的请求处理机制至关重要。 1. **四种映射方式**: - **通配符映射**:`@RequestMapping("/path/*")`,星号(*)代表任意...
Spring MVC 是一个基于 Java 的轻量级 Web 开发框架,它是 Spring 框架的一部分,主要用来处理 Web 请求和响应。在本文中,我们将深入探讨 Spring MVC 的核心概念、架构设计以及其实现过程。 首先,Spring MVC 的...
四、Controller Controller 是处理用户请求的类,通常包含多个处理方法。这些方法接收请求参数,处理业务逻辑,并返回 ModelAndView 对象,该对象包含了模型数据和视图信息。 五、ModelAndView ModelAndView 是一个...
四、SpringMVC高级特性 1. 数据验证:使用Hibernate Validator或JSR-303进行表单验证。 2. 文件上传下载:使用MultipartFile处理文件上传,OutputStream进行文件下载。 3. 异步处理:使用@Async注解实现异步方法,...
SpringMVC是Spring框架的一部分,专门用于构建Web应用程序。它是一个模型-视图-控制器(MVC)架构的实现,提供了高效、灵活且强大的处理HTTP请求的能力。在深入讲解SpringMVC之前,我们先理解MVC模式:模型负责业务...
【SpringMVC框架架构介绍】 SpringMVC是一个广泛使用的Java Web开发框架,它遵循Model-View-Controller(MVC)设计模式,简化了构建可维护和高性能的企业级应用程序的复杂性。以下是SpringMVC框架的一些核心概念和...
#### 四、SpringMVC与MyBatis整合 SpringMVC与MyBatis整合是指将SpringMVC框架与MyBatis ORM框架结合起来使用,实现Web层与持久层的分离。具体实现步骤如下: 1. **配置MyBatis**:在项目的`resources`目录下创建`...
四、SpringMVC 参数传递 SpringMVC 提供了多种参数传递方式,包括 Request、Model、Session 等。这些参数传递方式可以帮助开发者更方便地传递数据。 五、SpringMVC 标签介绍 SpringMVC 提供了多种标签,例如 ...
### 四、运行与测试 1. **启动服务器**:确保你的 Web 服务器(如 Tomcat)已正确配置并启动。 2. **访问应用**:通过浏览器访问 `http://localhost:8080/hello`,你应该能看到 "Hello, Spring MVC!" 的响应。 ###...
#### 四、SpringMVC与MyBatis整合 在实际开发中,SpringMVC经常与MyBatis等持久层框架一起使用。这种整合可以实现业务逻辑层与数据访问层的分离,提高系统的灵活性和可维护性。 #### 五、SpringMVC注解开发 ...
四、图片回显 图片回显是指在用户上传图片后,能够在页面上预览已上传的图片。这通常通过将图片数据转换为Base64编码,然后嵌入到HTML的`<img>`标签中实现。在SpringMVC中,可以在服务端将图片数据转换为Base64字符...
四、实际项目应用 本学习资源包含了一个完整的项目实例,涵盖了从用户登录注册、数据展示到业务处理等多个功能模块。通过实践这个项目,开发者可以更直观地理解SpringMVC和MyBatis如何协同工作,以及在实际开发中...
#### 四、SpringMVC的工作原理 - **初始化阶段**:启动服务器时,根据`web.xml`的配置加载前端控制器`DispatcherServlet`。在加载过程中,`DispatcherServlet`会执行一系列初始化操作,如加载配置文件、初始化视图...
开发环境:IDEA,Tomcat,MySQL,Redis 项目构建:Maven 软件环境:SSM(SpringMVC,Spring,MyBatis) 项目描述:一套以秒杀商品为目的而搭建制作的高并发系统。...四、功能模块 秒杀接口暴露(Exposer,封装的
SpringMVC 提供了四个关键组件来简化 MVC 实现: - DispatcherServlet:作为前端控制器,接收所有请求,并根据配置文件进行调度。 - HandlerMapping:处理请求映射,将请求 URL 与对应的 Controller 方法关联。 - ...
四、解决jar包冲突 在Java项目中,jar包冲突是常见的问题。解决方法包括: - 使用构建工具(如Maven或Gradle)管理依赖,避免手动添加jar包。 - 使用排除依赖(exclusions)来排除冲突的jar包。 - 使用依赖管理...
本主题将深入探讨如何利用Maven、Spring、SpringMVC和iBatis这四大核心组件,搭建一个完整的Java Web应用。 首先,Maven是Apache基金会的一个项目管理工具,它通过一个统一的配置文件(pom.xml)来管理项目的依赖...
《SpringMVC第四版》是一本深度探讨Spring MVC框架的权威指南,专为希望深入了解和精通该技术的开发者设计。Spring MVC是Spring框架的核心部分,它提供了一个模型-视图-控制器(MVC)架构,使得Java Web开发更加高效...