2012-01-24 8 views
0

Springタグライブラリを使用してすでにBeanに値が設定されていることを示す方法はありますか?値を見るには${}表記を使用できることがわかります。Spring TagLibsを使用したJSPの表示値

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

私は値を更新したい場合、これはOKですが、それはcommandBeanに既に存在している値が表示されません:私は、次のような何かをしようとしています。誰かがその解決策を投稿できますか?

答えて

1

このように動作するはずです。入力フィールドには、コントローラ内のコマンドオブジェクトに入力した値があらかじめ入力されている必要があります。その結果、jspページがレンダリングされます(つまり、xmlns:form = "http://www.springframework.org/tags/form" 。

モデルにデータを入力していない可能性があります。

@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)); 
    } 
} 

だから、最後にあなたは二つの方法、フォーム/コマンド/豆初期に移入するために1、およびユーザの入力を処理するための第二を必要としています。

BTW:「Bean」という用語は、フォームを作成して要求を含むオブジェクトの種類には非常に珍しいです。 (JSFでは、(Managed)Beanと呼ばれていますが、JSPを使用しています(これはコマンドベースであり、コンポーネントベースのJSFに匹敵しません)、Spring管理オブジェクトではないのでSpring Beanでもありません。私は個人的には、そのようなオブジェクトのための "コマンド"という言葉を使用します(スプリング参照への適合:15.3.2.3 Supported handler method arguments and return types "パラメータをバインドするコマンドまたはフォームオブジェクト:...")

関連する問題