2013-04-29 2 views
0

По какой-то причине его не работает. Я искал и пробовал все решения, найденные в сети. Нет кубиков. Похоже, что я что-то упускаю.@ Valid не запускается - Spring MVC 3.2

My Beam:

@Entity 
@Table(name="employees") 
public class Person { 

    private Integer person_id; 
    private String name; 
    private String name2; 
    private String email; 
    private double phone; 
    private String desc; 

    @Id 
    @Max(value=500) 
    @Column (name="id") 
    public Integer getPerson_id() { 
     return person_id; 
    } 

    public void setPerson_id(Integer person_id) { 
     this.person_id = person_id; 
    } 

    @NotNull 
    @NotEmpty 
    @Column (name="fn") 
    public String getName() { 
     return name; 
    } 
    public void setName(String name) { 
     this.name = name; 
    } 

    @Column(name="ln") 
    public String getName2() { 
     return name2; 
    } 
    public void setName2(String name2) { 
     this.name2 = name2; 
    } 

    @Email 
    @Column (name="em", unique = true) 
    public String getEmail() { 
     return email; 
    } 
    public void setEmail(String email) { 
     this.email = email; 
    } 

    @Column(name="phone") 
    public double getPhone() { 
     return phone; 
    } 
    public void setPhone(double phone) { 
     this.phone = phone; 
    } 

    @Column (name="de") 
    public String getDesc() { 
     return desc; 
    } 
    public void setDesc(String desc) { 
     this.desc = desc; 
    } 

    public String toString() { 
     return getPerson_id() + " - " + getName() + " - " + getName2() + " - " + getEmail(); 
    } 
} 

Метод контроллера, который обрабатывает POST:

@RequestMapping(value="/register", method = RequestMethod.POST, headers="Accept=*/*") 
public String registerUer(@javax.validation.Valid Person registerForm, BindingResult br){ 


    System.out.println("Erros?" + br.hasErrors()); 
    if (br.hasErrors()) { 
     System.out.println(br.getAllErrors()); 
    } 
    System.out.println(registerForm); 
    return "thankyou"; 
} 

home.jsp

<form:form action="register.htm" commandName="registerForm" method="post"> 
    Name1: <form:input path="name"/><br /> 
    Name2: <form:input path="name2"/><br /> 
    Email: <form:input path="email"/><br /> 
    Desc: <form:input path="desc" /><br /> 
    Phone: <form:input path="phone" /><br /> 
    <input type="submit" /> 
</form:form> 

контекст приложения XML-файл:

<mvc:annotation-driven /> 
    <context:component-scan base-package="com.springmvcsample"/> 
    <context:annotation-config/> 
    <import resource="hibernate_config.xml"/> 

    <bean id="viewResolver" 
     class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix"> 
    <value>/WEB-INF/views/</value> 
    </property> 
    <property name="suffix"> 
    <value>.jsp</value> 
    </property> 
    </bean> 

    <bean id="contentNegotiationManager"  
     class="org.springframework.web.accept.ContentNegotiationManagerFactoryBean"> 
     <!-- Turn off working out content type based on URL file extension, should fall back 
       to looking at the Accept headers --> 
    <property name="favorPathExtension" value="false" /> 
    </bean> 

    <bean class="org.springframework.context.support.ResourceBundleMessageSource" 
     id="messageSource"> 
    <property name="basename" value="messages" /> 
    </bean> 

Я всегда получаю hasErrors() return false У меня есть hibernate validator (GA jar) файл в моем классе. И я вижу, что это загружено:

INFO [Version] Hibernate Validator 4.2.0.Final 

Я что-то упустил?

+0

Можете ли вы попробовать аннотации для проверки на сеттерах? – 2013-04-29 04:51:56

+0

Попробуем это в любом случае. Но есть ли разница в использовании полей по сравнению с сеттерами? –

+0

У вас есть аннотации на ваших геттерах. – 2013-04-29 15:12:25

ответ

0

Он работает как ожидалось, если я удалю аннотации JPA (так как я хотел избежать дальнейшей настройки для db) и использовать вашу форму и код контроллера.

Определенно есть недостающая часть, можете ли вы попытаться сделать простой pojo с аннотациями проверки и посмотреть.

+0

В моем POJO нет никакого материала базы данных. Вы хотите, чтобы я удалил аннотацию '@ Column'? –

+0

Я прокомментировал аннотации JPA. Но до сих пор нет кубиков! Я не знаю, чего у меня нет. –

+0

Вы пробовали это, и это сработало для вас? Может, мне не хватает банок? (Не использовать Maven). Но я думаю, если я что-то упустил, он должен появиться в журнале/когда я отправлю. –

Смежные вопросы