2012-01-24 81 views
0

有沒有一種方法可以顯示已經使用Spring標籤庫在bean中填充的值?我知道我們可以使用${}表示法來查看這些值。我試圖做類似如下:使用Spring TagLib在JSP中顯示值

<form:form commandName="studentBean" method="POST"> 
<form:input path="fName"></form:label> 
</form:form> 

這是確定的,如果我想更新的值,但它不會顯示已經存在於commandBean值。任何人都可以發佈解決方案嗎?

回答

1

它應該這樣工作。 (form(xmlns:form =「http://www.springframework.org/tags/form」))輸入字段應該預先填入您放置在控制器中的命令對象中的值,在該控制器中呈現jsp頁面的結果。

你可能錯過了填充模型。

@RequestMapping(value = "/xxx", params = "form", method = RequestMethod.GET) 
public ModelAndView updateForm() { 
    ... 
    StudentBean studentBean = new StudentBean(); 
    studentBean.setFName("Ralph"); 
    return new ModelAndView("updateForm", "studentBean", studendBean); 
} 

@RequestMapping(value = "/xxx", method = RequestMethod.POST) 
public ModelAndView update(@Valid StudentBean studentBean, 
          final BindingResult bindingResult) { 
    if (bindingResult.hasErrors()) { 
     return new ModelAndView("updateForm", "studentBean", studendBean); 
    } else { 
     ... 
     return new ModelAndView(new RedirectView("/finished", true)); 
    } 
} 

所以最終需要兩種方法,一種填充形式/命令/豆腐初始和第二處理用戶輸入。

順便說一句:術語「Bean」對於那種用來填充表單幷包含請求的對象來說很少見。 (在JSF中,它被稱爲(Managed)Bean,但是使用JSP(這是命令庫,與基於組件的JSF沒有可比性)。它也不是Spring-Bean,因爲它不是Spring管理對象。我個人對於那種對象使用術語「命令」(根據彈簧參考:15.3.2.3 Supported handler method arguments and return types「將命令或表單對象綁定參數:...」)