我有以下的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”的属性? –