gpt4 book ai didi

java - Spring MVC 不填充模型属性

转载 作者:行者123 更新时间:2023-11-29 05:17:21 26 4
gpt4 key购买 nike

我正在尝试使用模型属性填充对象。它从 JSP 返回 null 到 Controller 。

<form:form method="post" action="addProduct" modelAttribute="product">
<table>
<tr>
<td>Product Name :</td>
<td><form:input path="productName"/></td>
</tr>
<tr>
<td>Parent Product Id:</td>
<td><form:input path="parentId"/></td>
</tr>
<tr>
<td>Category Id:</td>
<td><form:input path="categoryId"/></td>
</tr>
<tr>
<td colspan="2"><input type="submit" value="AddProduct"></td>
</tr>
</table>
</form:form>

@Autowired
private ProductService productService;

@RequestMapping(value = "addProduct", method = RequestMethod.GET)
public ModelAndView productForm(@ModelAttribute("product") Product product){
return new ModelAndView("addProduct"));
}

@RequestMapping(value = "addProduct", method = RequestMethod.POST)
public ModelAndView insertProduct(@ModelAttribute("product") Product product){
System.out.println(product.getProductName() + " : " + product.getParentId() + " : " + product.getCategoryId());
productService.insert(product);
return new ModelAndView("success");
}

虽然使用 modelAttribute 将值返回到 Controller 中,但它以 null 的形式出现。我做错了什么?

还有一件事我在我的 Catergory 类 中做同样的事情,它工作得很好。

无法理解这里出了什么问题。

最佳答案

终于找到了解决问题的方法。

在我的 pojo 类中,我为 setter 指定了不同的名称,因此它无法运行。

例如:在我的 JSP 中,我给出了

<form:input path="productName"/>

我的路径名称是“productName”,在我的 POJO 类中,我为变量指定了相同的名称,但我的 setter 名称不同。

因此,为了设置属性值,Spring 将查找名称为 set + attributeName() 的 setter。

在上面的例子中,它将是 set + productName()

我的错误是我的 setter 的名字是 setName()

希望这对像我这样的 Spring 新手有所帮助。谢谢

关于java - Spring MVC 不填充模型属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26066049/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com