Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/hibernate/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 仅在提交时进行Hibernate Bean验证_Java_Hibernate_Jsp_Spring Mvc_Hibernate Annotations - Fatal编程技术网

Java 仅在提交时进行Hibernate Bean验证

Java 仅在提交时进行Hibernate Bean验证,java,hibernate,jsp,spring-mvc,hibernate-annotations,Java,Hibernate,Jsp,Spring Mvc,Hibernate Annotations,所以我只是使用注释设置hibernate验证 基本上是这样的 @NotNull(message="please enter your first name") @Size(min=5, max=25, message = "your name is under or over the allotted size) String lastName 验证本身在大部分情况下工作正常。提交时将触发大小组件。但是,如果我加载页面,验证NoTnLoT验证将触发它加载提醒用户填写空白输入的时刻。由于这

所以我只是使用注释设置hibernate验证

基本上是这样的

 @NotNull(message="please enter your first name")
 @Size(min=5, max=25, message = "your name is under or over the allotted size)
 String lastName
验证本身在大部分情况下工作正常。提交时将触发大小组件。但是,如果我加载页面,验证NoTnLoT验证将触发它加载提醒用户填写空白输入的时刻。由于这是在bean中触发的,而且我还是SpringMVC的新手,我想知道是否有什么办法可以让它在提交而不是加载时触发

控制器代码

@RequestMappingvalue=/App

   public ModelAndView loadAppPage(@RequestParam(value = "Sal", required = false) String Sal,

   @RequestParam(value = "name1", required = false) String name1,

   @RequestParam(value = "name2", required = false) String name2,


   @ModelAttribute("newApp")@Valid App newApp, BindingResult result){



         ModelAndView mav = new ModelAndView();

         String timestamp = new java.text.SimpleDateFormat("MM/dd/yyyy h:mm:ss a").format(new Date());



         if(sal != null || name1 != null || name2 != null |){


              newContact.setSal(Sal);

                newContact.setname1(name1);

                newContact.setname2(name2);



                new AppValidator().validate(newApp, result);

                if(result.hasErrors()){

                       return new ModelAndView("App", "newApp", newApp);

                }else{

                       appService.addApp(newApp);



   /*                  mav.addObject("newApp", new App());*/

                       mav.setViewName("redirect:App.html");

                       return mav;

                }

         }

         mav.addObject("newApp", newApp);

         mav.setViewName("App");

         return mav;



   }

您正在使用http get加载页面?如果您不触发验证,它将不会发生。好的,也许我没有正确表达这一点。验证有效。bean设置正确。bean中有getter和setter。我想说的是,它会在我的表单的输入页面上触发notnull验证,这意味着当它加载时,输入是空白的,因此是空的,并且是一个错误,即使他们还没有机会填充值。我知道它是有效的。但是,验证并不能在POJO上的注释中即时进行。您需要触发验证器以获得验证。可能会发生两件事:您在POST请求时使用的自动验证框架,或者验证消息嵌入到页面中供javascript使用。如果您使用的是GET请求,那么请确保验证没有在javascript中对文档就绪进行触发。哦,好的,这更有意义,谢谢。好的,让我们假设我正在尝试在我的控制器中修复此问题。如果这是在页面加载或什么。有没有办法消除错误?如果result.hasErrors{}