4

私は次のようなスプリングMVCコントローラーを持っています

@RequestMapping(value="/new", method=RequestMethod.POST)
public String createBooking(@Valid Booking booking, BindingResult bindingResult, Model model, Principal principal)
{
    if(bindingResult.hasErrors()) {
        return "booking/edit";
    }
    //Store Booking in db...
    ...

問題は、POSTから取得したBookingオブジェクトがSpringによって構築されていることですが、プロパティがフォームに存在しないため、バリデーターに必要なプロパティの1つを設定できません。だから私の質問は、この必須のプロパティを追加するために@Validタグハンドラーによって処理される前に予約をインターセプトする方法はありますか?

乾杯!NFV

4

2 に答える 2

0

質問を理解しているかどうかはわかりませんが、フォーム送信によってコマンドがバインドされる前に、コマンド オブジェクトのフィールドに値を設定したいようです。その場合、次のようにコントローラーにメソッドを追加できます...

@ModelAttribute
public Booking getBooking() {
    Booking booking = new Booking();
    booking.setMyRequiredProperty("some value");
    return booking;
}

それが役立つことを願っています

于 2013-02-06T23:11:26.633 に答える