zoukankan      html  css  js  c++  java
  • 基于springmvc的简单增删改查实现---中间使用到了bean validation

    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", "123", "张三", "123dsad456"));
            map.put("ll", new User("ll", "321", "李四", "123dsa456"));
            map.put("ww", new User("ww", "32154", "王五", "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=6,max=18,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;
        }
        
        
    }
    
    其他代码就不一一复制了
  • 相关阅读:
    layui 参照赋值的两种方式
    c笔记
    Linux操作系统笔记
    make笔记
    Gcc如何知道文件类型。
    #include <xxx.h>和#include "xxx.h"的区别
    GCC编译流程
    c++ Socket客户端和服务端示例版本三(多线程版本)
    c++ Socket客户端和服务端示例版本二
    c++ Socket客户端和服务端示例版本一
  • 原文地址:https://www.cnblogs.com/zhujiabin/p/4867594.html
Copyright © 2011-2022 走看看