这篇文章的讲解都是基于注解的方式,关于spring mvc注解的介绍可以看我的上一篇文章:Spring mvc系列四之 注解介绍以及spring mvc的其它运用可以看我spring mvc系列的文章.
在讲spring mvc的时候讲解@RequestParam和@PathVariable用过spring mvc的数据填充.当我们从表单中传来数据时,可在相应的控制器的处理方法参数上写上相同名字参数以及相应的类型即可,当表单中的参数名称和方法参数名称不一样时可用@RequestParam或@PathVariable进行注解.
下面看一个例子:
首先创建一个表单提交页面data.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"> <title>添加用户</title> </head> <body> <form action="user/addUser" method="post"> 用户名:<input type="text" name="name" /><br/> 年龄:<input type="text" name="age" /> <input type="submit" value="提交" /> </form> </body> </html>
创建相应的控制器,这里表单提交到了user/addUser.写它对应的方法.
package gd.hz.springmvc.controller; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller("userController") @RequestMapping("user") public class UserController { @RequestMapping(value="addUser" , method=RequestMethod.POST) public ModelAndView addUser(String name , String age) { System.out.println("name--->" + name + "年龄--->" + age) ; return new ModelAndView("dataSuccess"); } }
我们把表单中的名为name和age与控制器中addUser方法中参数的name和age相对应.这样就spring就自动帮我们填充了数据.注意当参数名与表单中的名字不一样时可@RequestParam进行注解
当然也可以用对象的形式填充数据.
创建一个User类,生成相应的get set方法,属性名称与表单中的名称对应.
package gd.hz.springmvc.model; public class User { private String name ; private int age ; public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } }
在Controller中这样写:
package gd.hz.springmvc.controller; import gd.hz.springmvc.model.User; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.servlet.ModelAndView; @Controller("userController") @RequestMapping("user") public class UserController { //使用对象封装数据 @RequestMapping(value="addUser2" , method=RequestMethod.POST) public ModelAndView addUser2(User user) { System.out.println("name--->" + user.getName() + "年龄--->" + user.getAge()) ; return new ModelAndView("dataSuccess"); } }
将得到的数据返回到view当中:
最常用的是使用ModelAndView,它有很多重载的构造方法,可以返回字符串类型,也可以返回Map类型和Object类型,详细用法可以查看Spring 的API,下面举些例子.
@RequestMapping(value="addUser2" , method=RequestMethod.POST) public ModelAndView addUser2(User user) { System.out.println("name--->" + user.getName() + "年龄--->" + user.getAge()) ; return new ModelAndView("dataSuccess", "user" , user); }
@RequestMapping(value="addUser2" , method=RequestMethod.POST) public ModelAndView addUser2(User user) { System.out.println("name--->" + user.getName() + "年龄--->" + user.getAge()) ; ModelAndView model = new ModelAndView("dataSuccess"); model.addObject("user", user); return model; }
@RequestMapping(value="addUser2" , method=RequestMethod.POST) public ModelAndView addUser2(User user) { ModelAndView model = new ModelAndView("dataSuccess"); Map<String , User> users = new HashMap<String , User>(); model.addObject(users); return model; }
在视图界面我们可以用jstl获取数据.
例如前面第一种方法的user(注意这里的user是我们返回时定义的名称),${user.name}
相关推荐
在Spring MVC中,数据绑定是一项核心功能,它允许开发者将用户输入的数据与控制器中的对象属性进行关联,简化了数据处理的复杂性。本文将详细介绍Spring MVC中的数据绑定,并提供实例帮助初学者理解。 1. **模型...
13. **Spring Data Access**: Spring MVC可以与Spring Data、Hibernate、MyBatis等数据访问框架配合,简化数据库交互。 14. **Asynchronous Request Processing**: Spring MVC支持异步请求处理,可以通过`@Async`...
Spring MVC支持表单数据绑定,通过`@RequestParam`或`@ModelAttribute`注解获取表单字段。同时,可以通过`@Valid`结合`javax.validation`库进行数据验证。 5. **异常处理**: `@ExceptionHandler`注解可以用来...
3. **创建控制器**:编写一个处理请求的Spring MVC控制器,该控制器返回JSON数据,这些数据将被jqGrid用来填充表格。可以使用`@ResponseBody`注解和`@RequestMapping`来处理Ajax请求。 4. **编写HTML和JavaScript**...
数据绑定是Spring MVC的一个强大特性,它允许自动将请求参数与控制器方法的参数进行映射。源码中,我们可以看到Spring如何解析请求参数并将其绑定到对象属性上,同时支持自定义转换器和验证器。 此外,Spring MVC的...
13. **数据绑定**:Spring MVC提供了强大的数据绑定功能,可以自动将请求参数绑定到Controller方法的参数上,也可以将模型数据自动填充到表单中。 14. **国际化**:Spring MVC支持国际化,可以通过不同的消息源文件...
标题中的"spring4 mvc maven"指的是一个使用Spring MVC框架和Maven构建工具的Web应用程序项目。这个项目的核心是Spring MVC,它是Spring框架的一部分,专门用于构建Web应用,提供了模型-视图-控制器(MVC)架构模式...
11. **视图技术**:Spring MVC可以与多种视图技术集成,如JSP、Thymeleaf、Freemarker等,使得视图渲染更加灵活。 12. **测试**:Spring MVC提供了MockMVC工具,用于单元测试和集成测试控制器,模拟HTTP请求并验证...
4. **View**:视图负责渲染模型数据,Spring MVC支持多种视图技术,如JSP、FreeMarker、Thymeleaf等。 5. **HandlerMapping**:负责将请求映射到特定的控制器方法。 6. **HandlerAdapter**:适配器模式,使得Spring ...
在Web应用中,经常需要将数据导出为Excel格式供用户下载,Spring MVC提供了一种优雅的方式实现这一功能。 Spring MVC是Spring框架的一部分,它是一个用于构建Web应用程序的模型-视图-控制器(MVC)架构。它允许...
五、Spring MVC 实战案例 1. **Hello World**:创建第一个Spring MVC项目,实现简单的“Hello, World!”展示。 2. **表单提交**:处理POST请求,接收并显示表单数据。 3. **RESTful API**:创建RESTful服务,支持...
Spring MVC 是一个强大的Java Web开发框架,用于构建高效、可维护的Web应用程序。它基于Spring框架,提供了模型-视图-控制器(MVC)架构,简化了开发过程。本资源"Spring MVC step-by-step 源码"是针对初学者准备的...
"Spring MVC数据绑定大全.rar"这个压缩包很可能包含了全面讲解Spring MVC数据绑定技术的资料,如"Spring MVC数据绑定大全.pdf"。下面将详细阐述Spring MVC数据绑定的关键知识点。 1. **注解驱动的数据绑定**:...
- 如果有错误,Spring MVC会自动将错误信息绑定到模型中,然后返回到表单页面,`<form:errors>`标签会显示这些错误。 - 如果一切正常,控制器会处理数据并重定向到新的页面或者更新视图。 4. **表单标签实例** ...
在Spring MVC应用中,视图解析器(ViewResolver)是关键组件之一,负责将控制器返回的逻辑视图名称解析为实际视图。Spring MVC内置了多种视图技术的支持,包括JSP、Velocity、FreeMarker、Excel、PDF等。 注解型...
6. **数据绑定和验证**:Spring MVC提供强大的数据绑定和验证功能,可以将请求参数自动绑定到模型对象,并使用`@Valid`注解进行验证。 7. **拦截器**:使用`@Interceptor`可以创建自定义拦截器,对请求进行预处理或...
在本示例 "spring-mvc-demo" 中,我们将探讨 Spring MVC 的核心概念、配置、控制器、视图解析以及如何与数据库进行交互。 1. **核心概念** - **DispatcherServlet**:Spring MVC 的入口点,负责处理所有的 HTTP ...
在实际项目中,Spring3 MVC常与其他Spring模块如Spring JDBC、Spring Data JPA等配合使用,实现数据库操作。同时,结合Spring Security提供安全控制,Spring AOP实现切面编程,提升代码的可维护性。 总结,Spring3 ...
Spring MVC处理AJAX请求时,可以直接返回数据,通过`@ResponseBody`注解,框架会自动将对象转换为JSON格式,便于前端处理。这简化了前后端交互的过程。 在配置Spring MVC时,我们需要引入相应的库,包括Spring、...
- **丰富的功能**: Spring MVC提供了诸如请求映射、视图解析、表单处理等一系列强大的功能,这些功能可以帮助开发者高效地构建和维护Web应用。 - **高度可配置性**: Spring MVC的设计非常灵活,可以轻松地与其他流行...