我有以下的Spring MVC 3.2.4方法:Spring MVC的重定向與變量
@RequestMapping(value = "/products/{product}", method = RequestMethod.POST)
public String update(Product product, @Valid @ModelAttribute("productForm") ProductForm productForm, BindingResult bindingResult, Model model) {
if (bindingResult.hasErrors()) {
return "products/view";
}
mapper.map(productForm, product);
productService.saveProduct(product);
return "redirect:/products/{product}";
}
成功後應該用戶重定向回產品的細節。問題是,不是重定向到頁面「/ products/1」,我被重定向到頁面「/ products/Product [code = 1234567890,name = Nejaky]」。它看起來像placeholder {product}被替換爲product.toString(),而不是來自URL的原始ID。 我使用的內置彈簧數據轉換器:
<mvc:annotation-driven conversion-service="conversionService">
<mvc:argument-resolvers>
<bean class="org.springframework.data.web.PageableHandlerMethodArgumentResolver" />
</mvc:argument-resolvers>
</mvc:annotation-driven>
<bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />
<bean class="org.springframework.data.repository.support.DomainClassConverter">
<constructor-arg ref="conversionService" />
</bean>
我應該怎麼做,使之正常工作和重定向我回到「/產品/ 1」沒有做這樣的事情「重定向:/產品」 +產品.getId()?
您的模型中是否有通過ModelAttribute帶註釋的方法命名爲「product」的屬性? –