package com.kite.controller;

import java.util.HashMap;
import java.util.Map; import javax.validation.Valid; import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.validation.BindingResult;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.ModelAttribute;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod; import com.kite.entity.User; /**
* 简单的增删改查实现
* @author kite
*
*/
@Controller
@RequestMapping(value={"/user"})
public class UserController
{
//简单数据模拟
Map<String, User> map = new HashMap<String, User>();
public UserController()
{
map.put("zs", new User("zs", "", "张三", "123dsad456"));
map.put("ll", new User("ll", "", "李四", "123dsa456"));
map.put("ww", new User("ww", "", "王五", "dsa"));
map.put("zl", new User("zl", "5dsada", "赵六", "dsadsa"));
}
/**
* 显示列表
* @param model
* @return
*/
@RequestMapping({"/list"})
public String list(Model model)
{
model.addAttribute("users", map);
return "user/list";
}
/**
* 到添加页面使用method请求的方式来区分
* @return
*/
@RequestMapping(value={"/add"},method=RequestMethod.GET)
public String add(User user)
{
return "/user/add";
}
/**
* post请求方式实现真正的添加
* 使用bean validation
* BindingResult br 必须在@valid后面
* @return
*/
@RequestMapping(value={"/add"}, method=RequestMethod.POST)
public String add(@Validated User user, BindingResult br)
{
if(br.hasErrors())
{
//出错
return "user/add";
}
map.put(user.getUserName(), user);
return "redirect:/user/list";
}
/**
* 查看
* @param userName
* @param model
* @return
*/
@RequestMapping({"/{userName}/show"})
public String show(@PathVariable String userName, Model model)
{
User user = map.get(userName);
model.addAttribute(user);
return "/user/show";
}
/**
* 到修改页面
* @param userName
* @return
*/
@RequestMapping(value={"/{userName}/update"},method=RequestMethod.GET)
public String update(@PathVariable @ModelAttribute(value="userName") String userName, Model model)
{
User user = map.get(userName);
model.addAttribute(user);
return "/user/update";
}
/**
* 真正的更新
* @param userName
* @param user
* @param br
* @return
*/
@RequestMapping(value={"/{userName}/update"},method=RequestMethod.POST)
public String update(@PathVariable String userName, @Valid User user, BindingResult br)
{
map.put(userName, user);
return "redirect:/user/list";
}
/**
* 删除的实现
* @param userName
* @return
*/
@RequestMapping(value={"/{userName}/delete"},method=RequestMethod.GET)
public String delete(@PathVariable String userName)
{
map.remove(userName);
return "redirect:/user/list";
}
} 使用到bean validation的类 注解放在get方法只上
package com.kite.entity; import javax.validation.constraints.Size; import org.hibernate.validator.constraints.Email;
import org.hibernate.validator.constraints.NotEmpty;
import org.hibernate.validator.constraints.Range; public class User
{
private String userName;
private String password;
private String nickName;
private String email;
public User()
{
super();
// TODO Auto-generated constructor stub
}
public User(String userName, String password, String nickName, String email)
{
super();
this.userName = userName;
this.password = password;
this.nickName = nickName;
this.email = email;
}
@Override
public String toString()
{
return "User [userName=" + userName + ", password=" + password
+ ", nickName=" + nickName + ", email=" + email + "]";
}
@NotEmpty(message="用户名不能为空")
public String getUserName()
{
return userName;
} public void setUserName(String userName)
{
this.userName = userName;
}
@Size(min=,max=,message="密码的长度必须在6-18之间")
public String getPassword()
{
return password;
} public void setPassword(String password)
{
this.password = password;
}
public String getNickName()
{
return nickName;
}
public void setNickName(String nickName)
{
this.nickName = nickName;
}
@Email(message="邮箱格式不符合")
public String getEmail()
{
return email;
} public void setEmail(String email)
{
this.email = email;
} } 其他代码就不一一复制了

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

  1. MyBatis之二:简单增删改查

    这一篇在上一篇的基础上简单讲解如何进行增删改查操作. 一.在mybatis的配置文件conf.xml中注册xml与注解映射 <!-- 注册映射文件 --> <mappers> ...

  2. ado.net的简单数据库操作(三)——简单增删改查的实际应用

    果然,在犯困的时候就该写写博客,写博客就不困了,哈哈! 上篇我记录了自己的SqlHelper的开发过程,今天记录一下如何使用这个sqlhelper书写一个具有简单增删改查的小实例啦. 实例描述:在数据 ...

  3. Redis:五种数据类型的简单增删改查

    Redis简单增删改查例子 例一:字符串的增删改查 #增加一个key为ay_key的值 127.0.0.1:6379> set ay_key "ay" OK #查询ay_ke ...

  4. 基于pymysql模块的增删改查

    上课笔记 重点:(熟练)多表查询创建存储过程原生sql索引原理 pymysql 封装好的客户端cursor 底层就是一个send操作commit 告诉mysql真的要完成修改操作(不然修改不会生效)e ...

  5. 国产化之路-统信UOS + Nginx + Asp.Net MVC + EF Core 3.1 + 达梦DM8实现简单增删改查操作

    专题目录 国产化之路-统信UOS操作系统安装 国产化之路-国产操作系统安装.net core 3.1 sdk 国产化之路-安装WEB服务器 国产化之路-安装达梦DM8数据库 国产化之路-统信UOS + ...

  6. Mybatis实现简单增删改查

    Mybatis的简单应用 学习内容: 需求 环境准备 代码 总结: 学习内容: 需求 使用Mybatis实现简单增删改查(以下是在IDEA中实现的,其他开发工具中,代码一样) jar 包下载:http ...

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

    在学习spring4+springmvc+mybatis的ssm框架,idea整合简单实现增删改查功能,在这里记录一下. 原文在这里:https://my.oschina.net/finchxu/bl ...

  8. 学生信息管理系统--基于jsp技术和MySQL的简单增删改查

    web实现增删改查的方式有很多啊,对于初学者来说当然是要先了解各部分的传值的方式.本篇博客从jsp技术的最基础方面进行说明. 一.什么是jsp技术 首先,我们要了解什么是jsp技术. jsp技术是基于 ...

  9. springMVC操作mongoDB增删改查

    下面是mongoDb简单的增删改查(新闻类) 附:query.addCriteria(Criteria.where("modelId").ne("").ne(n ...

随机推荐

  1. 在GridView中实现全选反选的例子

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="GridView控件.asp ...

  2. TCP/IP笔记 三.运输层(4)——TCP链接管理与TCP状态机

    1. 建立连接 三次握手 (1)A 的 TCP 向 B 发出连接请求报文段,其首部中的同步比特 SYN 应置为 1,并选择序号 x,表明传送数据时的第一个数据字节的序号是 x. (2)B 的 TCP ...

  3. PLSQL 导入表到Oracle------》从一个表空间导入到其它表空间

        在用PLSQL导入.dmp文件到Oracle时出现的问题如下: Import started on 2015/11/18 10:42:44E:\oracle\product\10.2.0\db ...

  4. SqlServer之like、charindex、patindex(转载)

    SqlServer之like.charindex.patindex   1.环境介绍 测试环境 SQL2005 测试数据 200W条   2.环境准备 2.1建表 CREATE TABLE [dbo] ...

  5. 将从数据库中获取的数据 ,以HTML表格的形式显示

    1.HTML页面 <body> <form id="form1" runat="server"> <div id="di ...

  6. 【转】How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Android x86 Emulator

    [转]How to Start Intel Hardware-assisted Virtualization (hypervisor) on Linux to Speed-up Intel Andro ...

  7. php怎样求一个数组中最长的

    <?php $arr = array( 0 => 'd', 1 => '68b3', 2 => 'a86', 3 => 'c9aa97b23b71d5c', 4 => ...

  8. 鼠标放上去图片慢慢变大js 或 变大

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  9. [置顶] 程序员必知(二):位图(bitmap)

    位图是什么? 位图就是数组,一般来说是bit型的数组,具有快速定位某个值的功能,这种思想有很广泛的应用,比如下边两题: 1 找出一个不在5TB个整数中存在的数 假设整数是32位的,总共有4GB个数,我 ...

  10. cocos2dx进阶学习之CCScene

    继承关系 CCScene -> CCNode -> CCObject CCScene抽象了一个场景的概念,类似舞台的一幕 函数 static CCScene *create(void); ...