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. HDU 1294 Rooted Trees Problem

    题目大意:求有n个节点的树有几种? 题解:http://www.cnblogs.com/keam37/p/3639294.html #include <iostream> typedef ...

  2. HDU 1398 Square Coins

    题目大意:有面值分别为.1,4,9,.......17^2的硬币无数多个.问你组成面值为n的钱的方法数. 最简单的母函数模板题: #include <cstdio> #include &l ...

  3. HDU 1147 Pick-up sticks

    题解:每放一根棍子,都判断一下它与它前面的且在顶端的棍子是否相交,相交的话则将相应的棍子从解空间中除去. #include <cstdio> const double eps=1e-14; ...

  4. spring中基础核心接口总结

    spring中基础核心接口总结理解这几个接口,及其实现类就可以快速了解spring,具体的用法参考其他spring资料 1.BeanFactory最基础最核心的接口重要的实现类有:XmlBeanFac ...

  5. Roman Roulette(约瑟夫环模拟)

    Roman Roulette Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)To ...

  6. HDU1325 &amp;&amp;poj1308 基础并查集

    和上一道小希的迷宫差点儿相同,可是在HDU上提交一直WA,POJ过了 HDU的数据太强了吧,强的我感觉数据有问题 题意:输入若干对点,推断是否是一颗树,转化过来也就是是否存在环 点数-边数=1,还要推 ...

  7. FreeCodeCamp:Title Case a Sentence

    要求: 确保字符串的每个单词首字母都大写,其余部分小写. 像'the'和'of'这样的连接符同理. 结果: titleCase("I'm a little tea pot") 应该 ...

  8. django 开发简易博客(二)

    这一节我们来了解模板和视图.URL的使用. 一.使用模板 在blog目录中新建templates文件夹,在templates文件夹下新建base.html文件.目录结构如下 templates/ ba ...

  9. ViewFilpper

    package com.example.suneyaenews; import java.util.ArrayList; import java.util.HashMap; import java.u ...

  10. CSS3-旋转齿轮

    CSS3-旋转齿轮 查看DEMO 通过 CSS3,我们能够创建动画,这可以在许多网页中取代动画图片.Flash 动画以及 JavaScript. 先来认识一下css3的animation animat ...