Весенняя проверка не выдает никаких ошибок

Я пытался всеми возможными способами исправить это, но у меня не получилось. Итак, мой контроллер работает, и я также написал код для обработки проверки, но он не выдает никаких ошибок, даже если я отправляю некоторые недопустимые данные. Я только что применил проверку @notNull и @notEmpty, чтобы просто проверить. Вот мой код. Пожалуйста, помогите мне узнать, что с ним не так?

registerForm.jsp

<form:form method="POST" action="addRegistration" commandName="regForm">

   <table>
    <tr>
        <td><form:label path="name">Name : </form:label></td>
        <td><form:input path="name" /></td>
        <td align="left"><form:errors path="name" cssClass="error"/></td>
    </tr>
    <tr>
        <td><form:label path="age">Age : </form:label></td>
        <td><form:input path="age" /></td>
        <td align="left"><form:errors path="age" cssClass="error"/></td>
    </tr>
    <tr>
        <td><form:label path="email">Email : </form:label></td>
        <td><form:input path="email" /></td>
        <td align="left"><form:errors path="email" cssClass="error"/></td>
    </tr>
    <tr>
        <td><form:label path="refer">Refer : </form:label></td>
        <td><form:input path="refer" /></td>
        <td align="left"><form:errors path="refer" cssClass="error"/></td>
    </tr>

    <tr>
        <td colspan="2">
            <input type="submit" value="Submit"/>
        </td>
    </tr>
</table>  
</form:form>

SpringFormDem-servlet.xml

<beans xmlns="http://www.springframework.org/schema/beans"
   xmlns:context="http://www.springframework.org/schema/context"
   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
   xsi:schemaLocation="
   http://www.springframework.org/schema/beans     
   http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
   http://www.springframework.org/schema/context 
   http://www.springframework.org/schema/context/spring-context-3.0.xsd
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">

   <context:component-scan base-package="registration" />
   <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
      <property name="prefix" value="/WEB-INF/jsp/" />
      <property name="suffix" value=".jsp" />
   </bean>
   <bean id="messageSource"
        class="org.springframework.context.support.ReloadableResourceBundleMessageSource">

        <property name="basename" value="/WEB-INF/messages" />

    </bean>

 <bean id="myBeansValidator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
</beans>

Регистрационныйконтроллер.java

@Controller
public class RegistartionController {

    @RequestMapping(value="/registrationForm", method = RequestMethod.GET)
    public String registrationForm(Model model)
    {
        model.addAttribute("regForm", new RegistationDetails()); 
        //return new ModelAndView("registrationForm", "command", new RegistationDetails());
        return "registrationForm";
    }

    @RequestMapping(value = "/addRegistration", method = RequestMethod.POST)
    public String addRegistration(@ModelAttribute("regForm") @Valid RegistationDetails register, BindingResult result, ModelMap model)
    {
        String ret;
        System.out.println(result.toString());
      if(result.hasErrors())
      {
          ret = "registrationForm";
      }
      else
      {
        model.addAttribute("name", register.getName());
          model.addAttribute("age", register.getAge());
          model.addAttribute("email", register.getEmail());
          model.addAttribute("refer", register.getRefer());

      ret = "displayResult";
      }
      return ret;

   }
}

RegistartionDetail.java

public class RegistationDetails {

    @NotNull(message = "Your name can not be null")
    @NotEmpty(message = "Your name can not be null")
    private String name;

    @NotNull(message = "Your email can not be null")
    @NotEmpty(message = "Your email can not be null")
    private String email;

    @NotNull(message = "Your refer can not be null")
    @NotEmpty(message = "Your refer can not be null")
    private String refer;

    @NotNull(message = "Your age can not be null")
    @NotEmpty(message = "Your age can not be null")
    private String age;

    /**
     * @return the name
     */
    public String getName() {
        return name;
    }

    /**
     * @param name the name to set
     */
    public void setName(String name) {
        this.name = name;
    }

    /**
     * @return the email
     */
    public String getEmail() {
        return email;
    }

    /**
     * @param email the email to set
     */
    public void setEmail(String email) {
        this.email = email;
    }

    /**
     * @return the refer
     */
    public String getRefer() {
        return refer;
    }

    /**
     * @param refer the refer to set
     */
    public void setRefer(String refer) {
        this.refer = refer;
    }

    /**
     * @return the age
     */
    public String getAge() {
        return age;
    }

    /**
     * @param age the age to set
     */
    public void setAge(String age) {
        this.age = age;
    }
}

РЕШЕНИЕ:

Из комментария я узнал, что мой файл конфигурации отсутствует:

<mvc:annotation-driven />

Когда я добавил эту строку в код, он выдал мне ошибку:

java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: org.xml.sax.SAXParseException; номер строки: 11; номер столбца: 30; Префикс "mvc" для элемента "mvc:annotation-driven" не привязан

Чтобы решить эту ошибку, мне потребовалось добавить несколько строк в файл конфигурации:

<beans 
   ...
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="
   ...
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
</beans>

Всем спасибо.


person Community    schedule 14.10.2016    source источник
comment
Вы получаете какие-либо исключения? и вы уверены, что нулевые или пустые данные передаются на сервер?? а вы проверили binding result(result) объект, что он содержит??   -  person Prasanna Kumar H A    schedule 14.10.2016
comment
Да, мой displayresult.jsp отображает пустое значение, которое я читал данные из возвращенного объекта, который содержит данные, введенные пользователем на странице регистрации. Я попытался увидеть, есть ли какая-либо ошибка или нет, поэтому я просто вызвал метод toString() как System.out.println(result.toString()), но он всегда возвращает org.springframework.validation.BeanPropertyBindingResult: 0 ошибок.   -  person    schedule 14.10.2016
comment
Если у вас есть данные в объекте, то почему NotNull или NotEmpty могут быть правдой? Не вводите ничего для поля name.. затем объект RegistationDetails(regiater), он должен показать нуль в поле имени, а затем проверить объект результата, он должен показать ошибку @NotNull   -  person Prasanna Kumar H A    schedule 14.10.2016


Ответы (3)


Вам нужно иметь результат привязки, чтобы проверить, есть ли ошибки. Быстрый Google дал мне этот пример: http://codetutr.com/2013/05/28/spring-mvc-form-validation/

person Koos Gadellaa    schedule 14.10.2016
comment
У меня такое есть в контроллере. public String addRegistration(@ModelAttribute(regForm) @Valid RegistationDetails регистр, результат BindingResult, модель ModelMap) - person ; 14.10.2016
comment
У вас есть mvc:annotation-driven (или конфигурация @EnableWebMVC?). Также посмотрите, что @Sam говорит в своем комментарии. - person Koos Gadellaa; 14.10.2016
comment
когда я добавляю ‹mvc:annotation-driven /› , это выдает следующую ошибку: Исключение при загрузке приложения: java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache. catalina.LifecycleException: org.xml.sax.SAXParseException; номер строки: 11; номер столбца: 30; Префикс mvc для элемента mvc:annotation-driven не привязан. - person ; 14.10.2016

с первой проверки вашего кода, как вы передаете свои данные для проверки, глядя на свою форму, вы не устанавливаете текстовые поля для передачи пользователем каких-либо значений..... если я запускаю вашу форму в текстовом редакторе, поля не в настоящее время, вы пытались установить тип ввода в текст. тип = "текст"

e.g...

person Jason Delaney    schedule 14.10.2016
comment
‹форма:тип ввода=текстовый путь=имя/› - person Jason Delaney; 14.10.2016

РЕШЕНИЕ:

Вот решение, которое сработало для меня.

Из комментария я узнал, что мой файл конфигурации отсутствует:

<mvc:annotation-driven />

Когда я добавил эту строку в код, он выдал мне ошибку:

java.lang.IllegalStateException: ContainerBase.addChild: start: org.apache.catalina.LifecycleException: org.apache.catalina.LifecycleException: org.xml.sax.SAXParseException; номер строки: 11; номер столбца: 30; Префикс "mvc" для элемента "mvc:annotation-driven" не привязан

Чтобы решить эту ошибку, мне потребовалось добавить несколько строк в файл конфигурации:

<beans 
   ...
   xmlns:mvc="http://www.springframework.org/schema/mvc"
   xsi:schemaLocation="
   ...
http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.0.xsd">
</beans>

Всем спасибо.

person Community    schedule 14.10.2016