最近学习springmvc的表单标签库,其中form标签主要用于渲染HTML表单,而form标签有很多属性,可供选择,其中一般来说(以前)最重要的是commandName属性,因为它定义了模型属性的名称,包含了一个backing object,其属性是用来填充说生成的表单的内容的。同时,使用此属性要求在后台的请求处理方法中添加相应的模型属性进行返回,这样commandName才能生效,简单代码如下:
<form:form action="/book_save" method="post" commandName="book">
model.addAttribute("book", new Book());
最终的结果如题所示:Unable to find setter method for attribute: [commandName]。
解释下原因:
学习的内容较旧了,贴出spring-form.tld中的一点东西
<attribute>
<description>DEPRECATED: Use "modelAttribute" instead.</description>
<name>commandName</name>
<required>false</required>
<rtexprvalue>true</rtexprvalue>
</attribute>
这个属性其实已经过时了,现在应该使用modelAttribute属性,使用方法相同。