2011-01-12 7 views
0

私は、Spring 3 MVCアプリケーションがHibernateをORMとして使用しています。すべて正常に動作します。しかし、質問:Spring-Hibernate:関連オブジェクトの使用時にデフォルト値を定義する方法

私は新しいオブジェクトを作成するためのWebインターフェイス、新しい顧客を持っています。各顧客にはSTATUSがあります。 STATUS-Tableには事前定義された値があります。 CUSTOMER-TABLEには、情報を結合するstatus_idフィールドがあります。

CUSTOMERSのリストを表示するときに、CUSTOMER.STATUSプロパティにアクセスしてidに基づいて正しいオブジェクトを取得できます。

しかし、新しい顧客の標準ステータスをどのように定義できますか?私はドロップダウンを持つWebインターフェイスを持っています。

<form:select path="status"> 
<form:option value="0" label="- Please Select -" /> 
<form:options items="${customerStatuses}" itemValue="id" /> 
</form:select> 

これは値が常に0のように見えるので、これは常に「Please Select」テキストを表示しますか?これを個別に選択した標準ステータスに変更するにはどうすればよいですか?

答えて

2

コントローラはこれを処理する必要があります。 、実際のところ

@RequestMapping(value = { "/new-customer-form" }) 
public String showNewCustomerForm(ModelMap model) { 
    Customer newCustomer = new Customer(); 
    newCustomer.setStatus(statusRepository.getDefaultStatus()); 
    model.addAttribute("customer", newCustomer); 
    model.addAttribute("customerStatuses", statusRepository.getAllStatuses()); 
    return "customer-form"; 
} 

「 - 選択してください - 」あなたのステータスが常に満たされているので、ラベルはもう表示されません。私はこのようにそれを行うだろう。

+0

(私は。私は正しくこの時間あなたの質問を理解願っています)しかし)各ステータスの名前をOLYよりもいくつかのより多くの属性を持っているので、私はSTATUSのテーブルを必要と私は、テーブルの列にそれらの属性を設定すること、b)ログインしているユーザーに応じてステータスを設定できます。 – Czar

+0

デフォルトのstatus_idを定義する方法はありますか?それは右の状態のオブジェクトをテーブルから引っ張るべきでしょうか?これは、ユーザが自分のステータスリストに追加したり削除したりしても、デフォルトが存在するためです。 – Czar

+0

だから私は新しい顧客を作り、それぞれのセッターに電話をしなければならない。そして、私はコントローラでこれを行う必要があり、クラス内で正しく定義することはできません。完璧ではありませんが、少なくとも私は別の解決策を探すのを止めることができることを知っています。ありがとう – Czar

関連する問題