Ограничения ввода формы не применяются? - PullRequest
0 голосов
/ 04 мая 2011

Я новичок в Tomcat и Spring Web.Я пытаюсь использовать возможности проверки формы Spring, следуя этому руководству .Кажется, что все идет гладко, за исключением одного: моя форма не выполняет никакой проверки, и я всегда могу попасть на страницу успеха, когда отправляю форму, независимо от того, какие данные я предоставляю.

Использую ли яограничения правильно?Я хочу убедиться, что пользователь вводит свое имя и имя должно содержать не менее двух символов.

package net.devmanuals.form;

import javax.validation.constraints.Size;
import org.hibernate.validator.constraints.NotEmpty;

public class RegistrationForm {
    @NotEmpty(message = "You surely have a name, don't you?")
    @Size(min = 2, message = "I'm pretty sure that your name consists of more than one letter.")
    private String firstName;

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getFirstName() {
        return this.firstName;
    }
}

Код формы:

    <form:form method="post" commandName="regform">
        <p><form:input path="firstName" /> <form:errors path="firstName" /></p>
        <p><input type="submit" /></p>
    </form:form>

Контроллер:

@Controller
@RequestMapping("/register")
public class RegistrationController {
    @RequestMapping(method = RequestMethod.GET)
    public String showRegForm(Map model) {
        RegistrationForm regForm = new RegistrationForm();
        model.put("regform", regForm);
        return "regform";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String validateForm(@Valid RegistrationForm regForm, BindingResult result, Map model) {
        if (result.hasErrors()) {
            return "regform";
        }

        model.put("regform", regForm);
        return "regsuccess";
    }
}

Я неправильно применяю ограничения?

1 Ответ

0 голосов
/ 07 мая 2011

В дополнение к добавлению <mvc:annotation-driven/> в вашу конфигурацию, вы должны убедиться, что файл JSR-303 находится на вашем пути к классам. Из документов :

[AnnotationDrivenBeanDefinitionParser] ... настраивает валидатор, если он указан, в противном случае по умолчанию используется свежий экземпляр Validator, созданный по умолчанию LocalValidatorFactoryBean , если на пути к классам присутствует API-интерфейс JSR-303.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...