2011-12-08 66 views
1

我的控制器必須返回一個表單支持對象的方法:當表單提交失敗其驗證檢查如何保留Spring MVC表單支持對象的值?

@ModelAttribute(「userData」) 
public UserData formBackingObject() { 
    return new UserData(); 
} 

,它被重新顯示,但是當它被重新呈現時,userData對象不包含所述用戶提交的值 - 只是上面初始化時的值。

@RequestMapping(method = RequestMethod.POST) 
public void userData(HttpServletRequest request, @ModelAttribute(「userData」) UserData userData, BindingResult bindResult, ModelMap model) { 

    // do validation checks 

    if (bindResult.hasErrors()) { 
     // perform redirect back to same page 
    } 

    return "userData"; 
} 

回答

0

@ModelAttribute在方法級別通常給出將參考數據類型的數據添加到模型。這些註釋在@RequestMapping之前執行;因此你的屬性「userData」在控制到達你的public void userData()之前用新對象刷新。方法。

解決的辦法是在方法中將userData添加到模型中,該方法將您的userdata表單jsp返回給瀏覽器。