2012-03-04 4 views
0

Я пишу приложение с фреймворком Spring, и у меня есть вопрос, как сделать проверку формы с помощью дополнительных полей.Проверка весны формы с дополнительными полями

Я новичок в этом, но, насколько я понимаю, заполнить форму с формой: форма тега я установить атрибут с

@RequestMapping(value = "/register", method = RequestMethod.GET) 
public String register(Model model) { 

    model.addAttribute("tenant", new Tenant());      
    return "register"; 
} 

Затем создайте класс валидатора и использовать его по запросу POST:

@RequestMapping(value = "/register", method = RequestMethod.POST) 
public String registerPost(@ModelAttribute("tenant") Tenant tenant, 
        Model model, 
        BindingResult result) { 

    TenantValidator validator = new TenantValidator(); 
    validator.validate(tenant, result); 
    if (result.hasErrors()) { 
     return "register"; 
    } 

    tenantService.save(tenant); 
    return "redirect:accountOverview"; 
} 

Это работает очень хорошо, и я очарован тем, насколько это удобно!

Единственная проблема в том, что мне делать с дополнительными полями? Например, у меня есть поле «повторить пароль». Если я создаю дополнительные поля без использования меток и с помощью и проверять их непосредственно я не смог бы использовать:

<form:errors path="repeatPassword> 

тег как «repeatPassword» не является членом объекта формы.

Первым решением, которое приходит на ум, является создание специального объекта формы TenantDTO, который будет удерживать эти дополнительные поля, и при сохранении просто передайте данные в «Арендатор» (entity bean).

Это хороший подход? Каковы наилучшие практики в этой ситуации?

Спасибо!

Leonty

ответ

0

Вы все еще можете иметь эти значения в объекте формы. Думаю, вы не хотите сохранять их в базе данных. Вы можете избежать этого, используя аннотацию Transient (http://docs.oracle.com/javaee/5/api/javax/persistence/Transient.html). Это даст вам рычаги для создания сопоставления пути, наличия в объекте формы и выполнения всей проверки, но не сохраняющей в базе данных. Надеюсь, поможет.

+0

Это то, о чем я не думал. Моя забота заключается в том, что мой класс сущностей будет иметь функциональность формы (имея эти дополнительные поля). Это в EJB, поэтому другое приложение, которое будет использовать этот компонент, получит объект с полями, которые вообще не полезны (для этого конкретного приложения). Надеюсь, что я говорю, имеет смысл. Короче говоря, я хочу как можно лучше разойтись с проблемами. – Leonti

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