基于springmvc的简单增删改查实现---中间使用到了bean validation

  1 package com.kite.controller;
  2
  3 import java.util.HashMap;
  4 import java.util.Map;
  5
  6 import javax.validation.Valid;
  7
  8 import org.springframework.stereotype.Controller;
  9 import org.springframework.ui.Model;
 10 import org.springframework.validation.BindingResult;
 11 import org.springframework.validation.annotation.Validated;
 12 import org.springframework.web.bind.annotation.ModelAttribute;
 13 import org.springframework.web.bind.annotation.PathVariable;
 14 import org.springframework.web.bind.annotation.RequestMapping;
 15 import org.springframework.web.bind.annotation.RequestMethod;
 16
 17 import com.kite.entity.User;
 18
 19 /**
 20  * 简单的增删改查实现
 21  * @author kite
 22  *
 23  */
 24 @Controller
 25 @RequestMapping(value={"/user"})
 26 public class UserController
 27 {
 28     //简单数据模拟
 29     Map<String, User> map = new HashMap<String, User>();
 30     public UserController()
 31     {
 32         map.put("zs", new User("zs", "123", "张三", "123dsad456"));
 33         map.put("ll", new User("ll", "321", "李四", "123dsa456"));
 34         map.put("ww", new User("ww", "32154", "王五", "dsa"));
 35         map.put("zl", new User("zl", "5dsada", "赵六", "dsadsa"));
 36     }
 37     /**
 38      * 显示列表
 39      * @param model
 40      * @return
 41      */
 42     @RequestMapping({"/list"})
 43     public String list(Model model)
 44     {
 45         model.addAttribute("users", map);
 46         return "user/list";
 47     }
 48     /**
 49      * 到添加页面使用method请求的方式来区分
 50      * @return
 51      */
 52     @RequestMapping(value={"/add"},method=RequestMethod.GET)
 53     public String add(User user)
 54     {
 55         return "/user/add";
 56     }
 57     /**
 58      * post请求方式实现真正的添加
 59      * 使用bean validation
 60      * BindingResult br 必须在@valid后面
 61      * @return
 62      */
 63     @RequestMapping(value={"/add"}, method=RequestMethod.POST)
 64     public String add(@Validated User user,  BindingResult br)
 65     {
 66         if(br.hasErrors())
 67         {
 68             //出错
 69             return "user/add";
 70         }
 71         map.put(user.getUserName(), user);
 72         return "redirect:/user/list";
 73     }
 74     /**
 75      * 查看
 76      * @param userName
 77      * @param model
 78      * @return
 79      */
 80     @RequestMapping({"/{userName}/show"})
 81     public String show(@PathVariable String userName, Model model)
 82     {
 83         User user = map.get(userName);
 84         model.addAttribute(user);
 85         return "/user/show";
 86     }
 87     /**
 88      * 到修改页面
 89      * @param userName
 90      * @return
 91      */
 92     @RequestMapping(value={"/{userName}/update"},method=RequestMethod.GET)
 93     public String update(@PathVariable @ModelAttribute(value="userName") String userName, Model model)
 94     {
 95         User user = map.get(userName);
 96         model.addAttribute(user);
 97         return "/user/update";
 98     }
 99     /**
100      * 真正的更新
101      * @param userName
102      * @param user
103      * @param br
104      * @return
105      */
106     @RequestMapping(value={"/{userName}/update"},method=RequestMethod.POST)
107     public String update(@PathVariable String userName, @Valid User user, BindingResult br)
108     {
109         map.put(userName, user);
110         return "redirect:/user/list";
111     }
112     /**
113      * 删除的实现
114      * @param userName
115      * @return
116      */
117     @RequestMapping(value={"/{userName}/delete"},method=RequestMethod.GET)
118     public String delete(@PathVariable String userName)
119     {
120         map.remove(userName);
121         return "redirect:/user/list";
122     }
123 }

使用到bean validation的类  注解放在get方法只上
 1 package com.kite.entity;
 2
 3
 4 import javax.validation.constraints.Size;
 5
 6 import org.hibernate.validator.constraints.Email;
 7 import org.hibernate.validator.constraints.NotEmpty;
 8 import org.hibernate.validator.constraints.Range;
 9
10 public class User
11 {
12     private String userName;
13     private String password;
14     private String nickName;
15     private String email;
16     public User()
17     {
18         super();
19         // TODO Auto-generated constructor stub
20     }
21     public User(String userName, String password, String nickName, String email)
22     {
23         super();
24         this.userName = userName;
25         this.password = password;
26         this.nickName = nickName;
27         this.email = email;
28     }
29     @Override
30     public String toString()
31     {
32         return "User [userName=" + userName + ", password=" + password
33                 + ", nickName=" + nickName + ", email=" + email + "]";
34     }
35     @NotEmpty(message="用户名不能为空")
36     public String getUserName()
37     {
38         return userName;
39     }
40
41     public void setUserName(String userName)
42     {
43         this.userName = userName;
44     }
45     @Size(min=6,max=18,message="密码的长度必须在6-18之间")
46     public String getPassword()
47     {
48         return password;
49     }
50
51     public void setPassword(String password)
52     {
53         this.password = password;
54     }
55     public String getNickName()
56     {
57         return nickName;
58     }
59     public void setNickName(String nickName)
60     {
61         this.nickName = nickName;
62     }
63     @Email(message="邮箱格式不符合")
64     public String getEmail()
65     {
66         return email;
67     }
68
69     public void setEmail(String email)
70     {
71         this.email = email;
72     }
73
74
75 }

其他代码就不一一复制了

时间: 2024-10-13 22:17:57

基于springmvc的简单增删改查实现---中间使用到了bean validation的相关文章

[EF]使用EF简单增删改查

目录 认识EF 添加数据 删除数据 修改数据 查询数据 总结 认识EF ADO.NET Entity Framework 是微软以ADO.NET为基础所发展出来的对象关系对伊(O/R Mapping)解决方案,早起被称为ObjectSpage,最新版本EF6. 实体框架Entity Framework是ADO.NET中的一组支持面向数据的软件应用程序的技术.是微软的一个ORM框架. 什么是O/R Mapping 广义上,ORM指的是面向对象模型和关系数据库的数据结构之间的相互转换. 狭义上,OR

MyBatis之二:简单增删改查

这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> <!-- 通过xml方式映射 --> <mapper resource="com/mybatis/crud/userMapper.xml" /> <!-- 通过注解方式映射 --> <mapper class="com.mybatis.c

Linq to SQL 简单增删改查

Linq to SQL 简单增删改查 用Linq大大减少了对数据库的一般操作所需的编码量. 运行下面事例之前,首先建一个叫做Alien的数据库表. CREATE TABLE [dbo].[Aliens](    [Id] [int] IDENTITY(1,1) NOT NULL primary key,    [Name] [nchar](10) NULL,) 建一个console项目,在项目里添加一个Linq To Sql类文件(.dbml以及两个附属文件),把Alien表从服务器资源管理器拖

kendoUI 简单增删改查

1  目前学习主要基于kendoUI英文API文档(http://docs.telerik.com/kendo-ui/introduction) 2  在已经搭建的MVC+EF+kendo UI的基础上实现Kendo UI增删改查功能 3 增删改查代码示例: 3-1:主要展示前台实现代码,因为后台代码不是唯一,可自行配置,返回JSON数据 3-1:html代码如下 3-1-1:查询和列表展示 HTML代码,列表展示只需要一个div标签 ,如下(div id="grid"><

Redis之五种数据类型的简单增删改查

开心一笑 乌龟受伤.让蜗牛去买药.过了2个小时.蜗牛还没回来.乌龟急了骂道:他妈的再不回来老子就死了!这时门外传来了蜗牛的声音:你他妈再说老子不去了! 提出问题 Redis五种数据类型的简单增删改查命令??? 解决问题 假设你已经安装Redis服务器: 假设你已经打开Redis cli命令行工具: 假设你对Redis有所了解: Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" O

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库

Asp.net Core 2.1使用 EF Core 简单增删改查操作数据库 大概步骤如下5步: 1.创建项目(Asp.net Core 2.1项目) 2.项目使用EF Core 3.建立实体 4.生成迁移文件(生成数据库) 5.使用VS工具生成视图.控制器代码 示例代码下载  https://github.com/ZhMartincheng/NetCoreDemo.git 1.创建项目(Asp.net Core 2.1项目) 选择.net core 版本2.1 基础项目创建成功 2.项目使用E

基于maven+ssm的增删改查之批量删除

首先将之前的删除单个的eq(1)改为eq(2),因为我们新增了一个多选项. 然后是在delete.js中加入: //点击全部删除,就批量删除 $("#emp_delete_all_btn").click(function(){ var empNames = ""; var del_idstr = ""; //遍历选中的,获取其姓名和id $.each($(".check_item:checked"),function(){ /

idea+spring4+springmvc+mybatis+maven实现简单增删改查CRUD

在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/blog/3007984 工作环境: Windows 10 jdk8(1.8) IntelliJ IDEA spring 4 和 springMVC MySQL 5.7 maven 3.3 mybatis 3.4 DBCP Tomcat 8.5 项目上传到了Github方便查看:https://gith

springMVC操作mongoDB增删改查

下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(null));  //非空    query.with(new Sort(new Order(Direction.DESC, "ct")));  //倒叙 多个字段排序:第一排序按照sort降序,第二排序按照ct降序    query.with(new Sort(new Order(Dire