1

注釈付きのSpring MVCを使用しています。これが私の問題の簡単な概要です。

私のドメイン:

public class Restaurant {    
    private String name;
    private Address address = new Address();
    //Get and set....
}

public class Address{
    private String street;
    //Get and set....
}

私のコントローラー:

//Configure and show restaurant form.
public ModelAndView showAction() {
   ModelAndView mav = new ModelAndView("/restaurant/showRestaurant");
   restaurant = new Restaurant();
   mav.addObject("restaurant", restaurant);
   return mav;
}

//Save restaurant
public ModelAndView saveAction(@ModelAttribute(value="restaurant") Restaurant restaurant,BindingResult result) {
    restaurant.getName();//<- Not is null
    restaurant.getAddress().getStreet(); //<- is null
} 

私の見解:

 <form>
    <span class="full addr1"> 
      <label for="Nome">Name<span class="req">*</span></label>
      <h:inputText class="field text large" value="#{restaurant.name}" 
         id="name" forceId="true" styleClass="field text addr"/>
    </span> 

    <span class="full addr1">
      <label for="Nome">Street <span class="req">*</span></label>
      <h:inputText class="field text large" value="#{restaurant.address.street}" 
         id="street" forceId="true" styleClass="field text addr"/>
    </span>  
 </form>

私の問題は、名前と通りを入力してメソッド「saveAction」を呼び出して、レストランをいっぱいにしようとすると、名前が通りから来ているがそうではなかったということです。

4

2 に答える 2

0

Spring フォーム タグhttp://static.springsource.org/spring/docs/2.0.x/reference/spring-form.tld.htmlを使用してバインドしてみてください。とても簡単です。

于 2012-04-30T22:46:23.650 に答える
0

name="address.street"私はjsfに精通しているわけではありませんが、春にバインドするには、通常、通りの名前を適切にバインドするためにフルパスが必要です。

于 2012-04-30T20:36:00.997 に答える