- 浏览: 375825 次
- 来自: 北京
文章分类
- 全部博客 (237)
- XML (6)
- JavaSE (39)
- Junit (1)
- Maven (10)
- JavaScript (12)
- JavaEE (16)
- HTML5 (10)
- java多线程 (8)
- Hibernate (30)
- Java反射 (3)
- Spring (11)
- Struts (1)
- svn (2)
- linux (12)
- 代码实例 (1)
- 设计模式 (1)
- UML (1)
- javassist (1)
- Oracle (3)
- Hibernate异常 (9)
- DWR (6)
- Java泛型 (2)
- SpringMVC (11)
- Dbunit (3)
- github (2)
- Algorithm (1)
- zTree (1)
- jquery (7)
- freemarker (4)
- mysql (5)
- ffmpeg (1)
- 编码 (1)
- lucene (15)
- hadoop (1)
- JVM (1)
- Regular Expressions (5)
- myeclipse (1)
- 爬虫 (7)
- 加密 (3)
- WebService (2)
- Socket (2)
- Windows (1)
最新评论
-
wxpsjm:
好直接
HV000030: No validator could be found for type: java.lang.Integer. -
wxhhbdx:
学习了,对新手来说很不错的教程。
SpringMVC入门 (二) 数值传递 -
xgcai:
正好在学dwr
DWR入门 (二)用户实例
1.首先创建一个User类:
2.创建UserController:
这里的一个重点就是, SpringMVC的Controller是单例模式的。
因此和DWR是有本质区别的 http://alleni123.iteye.com/admin/blogs/1984135
这个链接中的DWR实例我们使用了static来保持变量的一致性。
而在SpringMVC中就不需要那么做了,直接使用private map<Str,User>这样的变量就可以了。
在WEB-INF/jsp/user目录创建一个list.jsp文件,如下:
以上是在视图中显示用户的方法。
接下来是如何通过表单添加用户。
3.添加用户
添加用户我们首先在Controller里面加入以下两个方法:
第一个方法用于跳转到用户添加页面,并通知SpringMVC我们所要添加的对象类型。
model.addAttribute(new User());
这里还有一种方法就是通过注释来告诉SpringMVC要添加的对象类型。
public String add(@ModelAttribute("user") User user)
这里的user便是对象类型的key,也就是jsp页面的modelAttribute的值。
第二个方法用于处理用户添加请求,并在添加成功后让用户跳转到显示用户的页面。
====
用户添加页面:
4.验证用户信息
我们可以通过实现JSR303标准的validator工具来帮助验证用户信息。
最常见就是Hibernate提供的validator
4.1 加入hibernate-validator
4.2修改User.java类,分别在getter上加入注释:
4.3 修改Controller里面的接受POST请求的方法,加入验证注释
4.4 修改add.jsp页面,加入错误信息的显示
这里我第一次测试的时候没有出现预期的错误信息。
找了半天原因,才发现是hello-servlet.xml配置文件的问题。
这里必须要加入
<!-- JSR-303 support will be detected on classpath and enabled automatically --><mvc:annotation-driven/>
这里在Spring reference文件中查找一下Configuring a JSR-303 Validator for use by Spring MVC就能看到具体说明
public class User { private String username; private String password; private String nickname; private String email; .... // 要加入有参构造函数和无参构造函数 }
2.创建UserController:
这里的一个重点就是, SpringMVC的Controller是单例模式的。
因此和DWR是有本质区别的 http://alleni123.iteye.com/admin/blogs/1984135
这个链接中的DWR实例我们使用了static来保持变量的一致性。
而在SpringMVC中就不需要那么做了,直接使用private map<Str,User>这样的变量就可以了。
@Controller @RequestMapping("/user") //这里表示我们访问这个控制器的时候,首先要在地址栏加入/user, public class UserController { private Map<String,User> users=new HashMap<String,User>(); public UserController(){ users.put("alleni", new User("alleni","123","小兰子","alleni@g.com")); users.put("eline", new User("eline","123","小李子","eline@g.com")); users.put("dou", new User("dou","123","小德子","dou@g.com")); System.out.println("UserController()"); } //要访问这个方法,就要在url中输入/users @RequestMapping(value="/users",method=RequestMethod.GET) //method=RequestMethod.GET表示只有get请求才会被这个方法处理。 public String list(Model model,HttpServletResponse res){ res.setContextType("utf-8"); model.addAttribute("users",users); return "user/list"; //这里表示路径WEB-INF/jsp/user/list.jsp, 也就是hello-servlet.xml中配置的prefix和suffix的值所表达的路径和后缀。 } }
在WEB-INF/jsp/user目录创建一个list.jsp文件,如下:
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'list.jsp' starting page</title> </head> <body> <!-- users对应model.addAttribute("users",users)的key值 --> <c:forEach items="${users}" var="um"> ${um.value.username} ---${um.value.nickname} ---${um.value.password} ---${um.value.email} </c:forEach> </body> </html>
以上是在视图中显示用户的方法。
接下来是如何通过表单添加用户。
3.添加用户
添加用户我们首先在Controller里面加入以下两个方法:
//通过add路径,跳转到用户添加页面。当用户发送的是get请求,就会访问这里 @RequestMapping(value="/add",method=RequestMethod.GET) public String add(Model model){ //这里如果不放一个User对象到model里面,就会报错 // Neither BindingResult nor plain target object for bean name 'user' available as request attribute //因为前台会根据modelAttribute="user">的user来获取User的getter和setter方法,才能进行数据添加。 model.addAttribute(new User()); return "user/add"; } //在具体添加用户时,是POST请求,就访问这里。 //form提交的时候就会post请求了。-->sf:form method="post" @RequestMapping(value="/add",method=RequestMethod.POST) public String add(User user){ users.put(user.getUsername(), user); return "redirect:/user/users"; //redirect表示客户端跳转,也就是form被提交以后客户要跳转到的页面 //注意: 这里是用户端跳转,因此参数必须是我们的控制器的地址路径。 //这里并不是直接访问WEB-INF/下面的内容,而是访问我们控制器的RequestMapping的值所对应的方法内容,再由该方法访问WEB-INF下的页面。 }
第一个方法用于跳转到用户添加页面,并通知SpringMVC我们所要添加的对象类型。
model.addAttribute(new User());
这里还有一种方法就是通过注释来告诉SpringMVC要添加的对象类型。
public String add(@ModelAttribute("user") User user)
这里的user便是对象类型的key,也就是jsp页面的modelAttribute的值。
第二个方法用于处理用户添加请求,并在添加成功后让用户跳转到显示用户的页面。
====
用户添加页面:
<%@ taglib prefix="sf" uri="http://www.springframework.org/tags/form" %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'add.jsp' starting page</title> </head> <body> <!--user对应的是model.addAttribute(new User());这里的对象类型--> <sf:form method="post" modelAttribute="user"> 用户名称:<sf:input path="username"/> 用户密码: <sf:input path="password"/> 用户昵称: <sf:input path="nickname"/> 用户邮箱: <sf:input path="email"/> <input type="submit" value="添加用户"/> </sf:form> </body> </html>
4.验证用户信息
我们可以通过实现JSR303标准的validator工具来帮助验证用户信息。
最常见就是Hibernate提供的validator
4.1 加入hibernate-validator
<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>4.3.1.Final</version> </dependency>
4.2修改User.java类,分别在getter上加入注释:
@NotEmpty(message="用户名不能为空") public String getUsername() { return username; } @Range(min=3,max=10,message="密码的长度必须在3-10之间") public String getPassword() { return password; } @Email(message="邮箱的格式不正确") public String getEmail() { return email; }
4.3 修改Controller里面的接受POST请求的方法,加入验证注释
@RequestMapping(value="/add",method=RequestMethod.POST) public String add(@Validated User user, BindingResult result){ //BindResult是验证结果类,必须紧跟@Validator 类后面,否则会报错。 if(result.hasErrors()){ //说明有错误 return "user/add"; //有错误则跳转到add视图中, } ...}
4.4 修改add.jsp页面,加入错误信息的显示
<sf:form method="post" modelAttribute="user"> 用户名称:<sf:input path="username"/><sf:errors path="username"/><br/> 用户密码: <sf:input path="password"/><sf:errors path="password"/><br/> 用户昵称: <sf:input path="nickname"/> <br/> 用户邮箱: <sf:input path="email"/><sf:errors path="email"/><br/> <input type="submit" value="添加用户"/> </sf:form>
这里我第一次测试的时候没有出现预期的错误信息。
找了半天原因,才发现是hello-servlet.xml配置文件的问题。
这里必须要加入
<!-- JSR-303 support will be detected on classpath and enabled automatically --><mvc:annotation-driven/>
这里在Spring reference文件中查找一下Configuring a JSR-303 Validator for use by Spring MVC就能看到具体说明
发表评论
-
java.lang.NumberFormatException: For input string: ""
2014-06-11 15:12 1631这种异常基本上碰到的都是因为后台没有传输数据到前台, 而前台有 ... -
tomcat+springmvc的根路径主页问题
2014-04-29 12:13 3558<servlet> <servlet ... -
springmvc HTTP ERROR 400
2014-02-25 13:05 1030HTTP ERROR 400 Problem accessi ... -
Http 400 Bad Request
2014-01-12 12:28 1257今天在提交form的时候碰到这个错误, 错误原因是数据类型前台 ... -
java.lang.IllegalStateException: No WebApplicationContext found:
2013-12-09 17:10 0java.lang.IllegalStateException ... -
SpringMVC整合Hibernate (一)
2013-12-09 13:15 0这个跟Hibernate整合Spring其实是一样的。 环境 ... -
SpringMVC入门 (六) 文件上传
2013-12-08 23:36 16881.单个文件上传 在Controller的add方法中加入: ... -
SpringMVC入门 (五)用户登录以及异常处理,静态文件
2013-12-08 22:48 1177用户登录很简单,一个get类型请求给用户返回一个登录界面,然后 ... -
SpringMVC入门 (四) 简单用户管理实例-增删改查
2013-12-08 19:48 4479这里写一下如何通过REST格式来处理单个用户信息。 1. 查 ... -
SpringMVC入门 (二) 数值传递
2013-12-07 23:35 1603环境还是上一篇的环境h ... -
SpringMVC工作原理
2013-12-07 19:23 1394参考文章http://www.roseindia.net/sp ... -
SpringMVC入门 (一) 搭建环境
2013-12-07 22:54 1321SpringMVC学习使用总共分几个步骤: 1.搭建环境 2. ...
相关推荐
**SpringMVC与Maven入门实例详解** 在Java Web开发中,SpringMVC和Maven是两个非常重要的工具。SpringMVC是Spring框架的一部分,它提供了模型-视图-控制器(MVC)架构,用于构建可维护、高性能的Web应用程序。而...
在IT行业中,Maven和SpringMVC是两个非常重要的组件,它们分别是项目管理和Web应用程序开发的核心...通过这个入门级的HelloWorld实例,我们可以快速理解这两个工具的基本用法,为进一步深入学习和实践打下坚实的基础。
Spring MVC 是一个强大的Java Web应用程序开发框架,是Spring框架的一部分,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,简化了处理HTTP请求、数据绑定、验证以及与后端服务交互的过程。这个...
在这个入门实例中,我们将深入理解SpringMVC的核心概念,以及如何通过`springmvc_demo_02`这个项目来创建一个简单的应用。 1. **SpringMVC架构** SpringMVC由几个关键组件组成:DispatcherServlet、Controller、...
通过这个简单的入门实例,我们可以了解到 Spring MVC 的基本工作流程:请求到达 DispatcherServlet,由它转发到对应的 Controller,Controller 处理请求后返回视图名称,ViewResolver 解析视图,最后呈现给用户。...
本入门实例旨在帮助开发者快速理解并掌握Spring MVC的基本概念和工作流程。 首先,Spring MVC的核心概念包括DispatcherServlet、Controller、Model、View和ViewResolver。DispatcherServlet是Spring MVC的前端控制...
以上就是SpringMVC入门中的表单处理相关知识点。通过这些基础,开发者可以轻松地构建表单提交、数据验证等功能,实现与后端的交互。在实际项目中,还可以结合其他技术,如Ajax、Thymeleaf等,提升用户体验和开发效率...
在这个快速入门教程中,我们将深入理解 SpringMVC 的核心概念、配置以及如何创建一个简单的应用程序。 1. **MVC 模式** MVC 模式是一种设计模式,将应用程序分为三个主要部分:模型(Model)、视图(View)和控制...
4. **@Controller注解**:用于标记一个类为Spring MVC的控制器,这样Spring会自动将该类实例化并管理。 5. **@RequestMapping**:用于映射HTTP请求,可以放在类级别或方法级别,指定URL与控制器方法的对应关系。 6...
这个"springboot+springMVC+mybatis的简单入门实例1"为我们提供了一个整合这三个框架的基础项目,帮助开发者快速理解和上手。 首先,Spring Boot是Spring框架的扩展,它简化了创建独立的、生产级别的基于Spring的...
以上就是关于SpringMVC入门实例的基础知识,包括SpringMVC的架构、搭建步骤、核心组件以及常用注解。通过实践这些知识点,你可以快速上手SpringMVC,构建出功能完备的Web应用程序。提供的jar和项目源码可以帮助你更...
总的来说,这个入门实例旨在帮助初学者理解如何在没有使用注解的情况下,通过XML配置文件集成SpringMVC、Spring和Hibernate,完成一个简单的Web应用。虽然现在的最佳实践倾向于使用注解和Spring Boot,但理解非注解...
在这个"SpringMVC入门很简单之国际化"的主题中,我们将深入探讨如何在SpringMVC应用中实现国际化,以满足不同地区用户的需求。 首先,实现国际化需要使用SpringMVC中的`MessageSource`接口。`MessageSource`允许...
综上所述,SpringMVC入门涉及的知识点包括但不限于MVC设计模式、后端控制器的配置和使用、映射处理器的作用和类型、视图解析器的配置和工作原理、注解在控制器中的应用以及一个简单的入门实例。这些知识点构成了...
1. SpringMVC 入门实例 在入门实例中,首先需要搭建开发环境,包括引入必要的 Spring 相关库。如 org.springframework.aop、org.springframework.beans、org.springframework.context、org.springframework.core 和...
**SpringMVC基础教程简单入门实例** SpringMVC是Spring框架的一个模块,专门用于构建Web应用程序。它提供了模型-视图-控制器(MVC)架构,帮助开发者将业务逻辑、数据处理和用户界面分离,使得代码更加清晰和可维护...
下面,我们将深入探讨 SpringMVC 的基本概念和如何创建一个入门实例。 1. **SpringMVC 概述** - MVC 模式:Model(模型)负责业务逻辑,View(视图)负责显示结果,Controller(控制器)处理用户请求并协调模型和...
本入门实例将重点介绍如何使用注解来简化Spring MVC的配置,以便快速入门。Eclipse Dynamic Web工程是开发此类应用的常见环境。 首先,我们需要创建一个Eclipse Dynamic Web项目。在Eclipse中,选择"File" -> "New...
这个入门实例是一个基于Mysql数据库的员工管理系统,它涵盖了基础的CRUD(创建、读取、更新、删除)操作,并且涉及到实体类与数据库表之间的关联关系。 1. **SpringMVC架构**: SpringMVC通过DispatcherServlet...