带注释的Spring MVC@ModelAttribute自动映射不处理关联对象

带注释的Spring MVC@ModelAttribute自动映射不处理关联对象,spring,jsf,spring-mvc,Spring,Jsf,Spring Mvc,我正在使用带注释的SpringMVC。这是我的问题的简要概述 我的域名: public class Restaurant { private String name; private Address address = new Address(); //Get and set.... } public class Address{ private String street; //Get and set.... } 我的控制器: //Confi

我正在使用带注释的SpringMVC。这是我的问题的简要概述

我的域名:

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时,当我尝试填写餐厅时,恰好名称来自街道,但没有。

我不太熟悉jsf,但在春季绑定时,通常需要完整路径,即name=address.street,要正确绑定街道名称,请尝试使用spring表单标记进行绑定。这很简单。

但是h:inputText不是名称property,在jsf spring中使用此表单是因为我的页面是。我已经尝试过xhtml,但无法放置您知道可以使用的位置?我明白您的意思,我认为jsf也管理bean,spring也管理bean。我不确定两者是否可以混为一谈。我想SpringFaces与JSF有一些集成点。请看看这个。这可能对你有帮助。