Проверка формы не получает проверки на моем объекте учетной записи - PullRequest
0 голосов
/ 02 апреля 2012

Моя проверка не работает, вызов hasErrors не возвращает false:

if(bindingResult.hasErrors()) {
  ...
}

Вот мои настройки:

Используя spring mvc, мойВ модуле models есть класс Account:

@Entity
@Table(name = "accounts")
public class Account {

    @Id
    @GeneratedValue
    private int id;
    private int rootUserId;

    @Size(min=3, max=50, message="Username must be between 3 and 50 characters long.")
    private String name;

    ..
}

В контроллере моего аккаунта есть действие создания, на которое отправляется моя форма:

@RequestMapping(value = "/create", method = RequestMethod.POST)
    public ModelAndView create(@Valid Account account, BindingResult bindingResult) {

        ModelAndView mav = new ModelAndView("accounts/new");

        account.setName("a");

        if(bindingResult.hasErrors()) {
            return mav;
        }
        mav.setViewName("/test/");

        return mav;  // TODO should be redirecting, but not working b/c of MaV return value
    }

В настоящее время я не использую никаких помощников формыв моей разметке freemarker, и когда он попадает в контроллер, учетная запись не была инициализирована.Поэтому сейчас я просто вручную устанавливаю для свойства name значение «a», что должно привести к сбою проверки, но это не так.

Мой bean-компонент (я думаю) подключен в моем bean-компоненте sessionFactory здесь:

<!-- Hibernate SessionFactory -->
    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
        <property name="dataSource" ref="dataSource"/>
        <!--<property name="packagesToScan" value="com.test.models" />-->
        <property name="configLocation" value="/WEB-INF/config/hibernate.cfg.xml"/>
        <property name="hibernateProperties">
            <value>
                hibernate.dialect=org.hibernate.dialect.MySQLDialect
                hibernate.query.substitutions=true 'Y', false 'N'
                hibernate.show_sql=true
                hibernate.hbm2ddl.auto=update

            </value>
        </property>
        <property name="annotatedClasses">
            <list>
                <value>com.test.models.Account</value>
            </list>
        </property>
    </bean>

Фактические аннотации валидации используют javax.validations, в моих моделях pom.xml:

    <dependency>
        <groupId>javax.persistence</groupId>
        <artifactId>persistence-api</artifactId>
        <version>1.0-rev-1</version>
    </dependency>
    <dependency>
        <groupId>javax.validation</groupId>
        <artifactId>validation-api</artifactId>
        <version>1.0.0.GA</version>
    </dependency>

Почему мои валидации не проверяются?

По какой-то причине Spring не забирает мою учетную запись ??

PS: Как должен выглядеть ввод html, чтобы он активировал объект Account во время публикации?Я пробовал:

<input type="texT" ... name="account[name]" />

А также:

name="account.name"

Каким он должен быть?

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