带注释的Spring MVC@ModelAttribute自动映射不处理关联对象
我正在使用带注释的SpringMVC。这是我的问题的简要概述 我的域名:带注释的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
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有一些集成点。请看看这个。这可能对你有帮助。