Поместить данные модели в форму Spring MVC при загрузке - PullRequest
0 голосов
/ 14 мая 2011

У меня проблема, когда я пытаюсь поместить данные из контроллера в представление формы при загрузке страницы в весеннем mvc.Вот мой контроллер:

@Controller
@RequestMapping("myaccount.htm")
public class MyAccountController {
    @Autowired
    private AccountValidation accountValidation;

    public void setAccountValidation(AccountValidation accountValidation){
        this.accountValidation = accountValidation;
    }

    @InitBinder
    public void initBinder(WebDataBinder binder) {
        binder.registerCustomEditor(String.class, new StringUTF8Editor(true));
    }

    @RequestMapping(method = RequestMethod.GET)
    public String showAccountForm(Map<String, AccountForm> model){
        AccountForm account = new AccountForm();
        model.put("accountform", account);
        return "myaccount";
    }

    @RequestMapping(method = RequestMethod.POST)
    public String processAccount(@Valid AccountForm accountForm,
            BindingResult result, Map<String, AccountForm> model, HttpSession session, HttpServletResponse response) {


        //I try put something model like this when load page
        AccountForm acc = new AccountForm();
        acc.setEmail("h@gmail.com");
        acc.setBirth("12/12/1989");
        acc.setPassword("user");
        acc.setPhone(21767621); 

        // but it only show when I submit 
        model.put("accountform", acc);
        if(result.hasErrors()){
            return "myaccount";
        }

        return "myaccount";
    }
}

Есть ли у вас какие-либо предложения?Спасибо!

1 Ответ

1 голос
/ 14 мая 2011

Вы не должны инициализировать эти данные во время обработки запроса POST, поскольку он перезаписывает предоставленные пользователем данные. Вместо этого вы должны установить значения по умолчанию в showAccountForm(). И даже больше: используйте @ModelAttribute для заполнения модели.

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