当我试图在控制器方法中检索表单结果时,我得到了以下错误:
org.springframework.validation.BeanPropertyBindingResult: 1字段“客户端”上的对象‘搜索’中的字段错误:拒绝值14;代码typeMismatch.search.clients、typeMismatch.clients、typeMismatch.java.util.List、typeMismatch;参数[org.springframework.context.support.DefaultMessageSourceResolvable:代码search.clients,客户端;参数[];默认消息客户端];默认消息[未能将'java.lang.String‘类型的属性值转换为属性’客户‘所需的'java.util.List’类型;嵌套例外是java.lang.IllegalStateException:无法将java.lang.String类型的值转换为属性“客户端”所需的类型com.Client :没有找到匹配的编辑器或转换策略]
模型对象如下所示:
public class SearchForm {
private String name;
private List<Client> clients;
//getters and setters
}
public class Client {
private String name;
private Int id;
}表格:
<form:form method="POST", name="searchresults.html" modelattibute="search">
<form:input path="name"/>
<form:checkboxes path="clients" items="{clientsList}" itemsValue="id" itemsLabel="name"/>
</form:form>此表单在html页面上正确地显示值,但当我单击submit按钮时,会得到上述错误。
发布于 2011-08-09 16:10:58
浏览器只会在提交表单时发送客户端is列表。Spring如何知道如何将每个ID转换为客户机实例。要么告诉它如何做,要么向bean添加一个List<String> clientIds属性,并使form:checkboxes标记使用该属性而不是clients作为其路径。
https://stackoverflow.com/questions/6998680
复制相似问题