zoukankan      html  css  js  c++  java
  • springmvc 校验,新增,及在输入页面报错 command找不到bean的原因。

    1.  在显示跳转的页面控制器中,传入modelAttribute的赋值,并在显示的jsp页面,用modelAttribute的属性将他显示出来。

    如控制器代码:

    @RequestMapping("/adminList")
        public String adminList(Admin admin) {
            return "adminList";
        }

    这段代码主要负责转向,需要带上参数,admin。

    然后jsp页面,有如下显示:

    <form:form action="adminAdd" method="post" modelAttribute="admin"  >
     user:<form:input path="name" /><form:errors path="name" /><br>
     password:<form:input path="password" /><form:errors path="password"/><br>
     email:<form:input path="email" /><form:errors path="email"/><br>
     lock:<form:input path="lockFlag" /><br>
     <input type="submit">
    </form:form>

    具体的校验过程,需要在添加方法中,实现校验:

    @RequestMapping("/adminAdd")
        public String adminAdd(@Valid Admin admin ,BindingResult error) {
            if(error.getErrorCount()>0)
            {
                System.out.println("出错了!");
                
                for(FieldError err:error.getFieldErrors()){
                    System.out.println(err.getField() + ":" + err.getDefaultMessage());
                }
                
             return "adminList";
            }
            adminService.addAdminService(admin);
            return "addSuccess";
        }

    校验的元数据,在bean中,用注解的方式标注

    在hibernate-validator的jar 6.0.18中,在引入jar时提示hibernate的命名空间的那个已经过期,可以用spring提供的,试验结果,新的spring的可以跑通。

    package cn.taotao.bean;
    
    import javax.validation.constraints.Email;
    import javax.validation.constraints.NotEmpty;
    
    public class Admin {
    
        private int id;
        @NotEmpty
        private String name;
        @NotEmpty
        private String password;
        @Email
        private String email;

    其中最关键的一点,就是在转向时,带入bean的参数。

    另外如果对于修改的操作,需要注入@ModelAttribute的方法,他会提前执行并且给表单域赋值。(待测)

        @ModelAttribute
        public void getAdmin(@RequestParam(value="id",required=false) Integer id,
                Map<String, Object> map){
            if(id != null){
                map.put("admin", adminService.getAdminByIdService(id));
            }
        }
  • 相关阅读:
    windows常用快捷键
    清华为什么被称为“水木清华”
    CTP程序化系统开发(C++ && PHP)
    PHP判断SESSION过期的方法
    Linux 下 ---ThinkPHP 图片上传提示:上传根目录不存在!请尝试手动创建
    &#65279导致页面顶部空白一行解决方法 【】
    Code笔记 之:ajax诡异的错误-请求status为200
    PHP之:序列化和反序列化-serialize()和unserialize()
    Linux之:Ubuntu速学笔记(1)
    C语言归并排序(合并排序)算法及代码
  • 原文地址:https://www.cnblogs.com/sdgtxuyong/p/11978061.html
Copyright © 2011-2022 走看看