Spring 3验证抛出java.lang.IllegalStateException

时间:2012-05-01 05:44:25

标签: spring

我的验证员类

 public class ProductValidator implements Validator {
    public void validate(Object obj, Errors errors) throws ValidatorException {
        Product product =(Product)obj;
        if("NONE".equals(product.getCategory())){
            errors.rejectValue("category","Category Required");
        }
    }

我的jsp

 <form:select path="category" cssClass="add">
        <form:option value="NONE" label="--- Select Category ---"/>
    <form:options items="${categoryList}" itemValue="categoryId" itemLabel="categoryName"/>             
</form:select>       
<form:errors path="category" cssClass="error"> </form:errors>

当我在没有选择任何选项的情况下提交表单时,会出现错误,

无法将类型为java.lang.String的属性值转换为属性类别所需的类型com.main.java.Category;嵌套异常是java.lang.IllegalStateException:无法将类型[java.lang.String]的值转换为属性类别所需的类型[com.main.java.Category]:找不到匹配的编辑器或转换策略

这里有什么不对吗?

请帮助.....

1 个答案:

答案 0 :(得分:1)

如果未选择任何内容,则表示您正在向控制器提交“NONE”字符串。

    <form:option value="NONE" label="--- Select Category ---"/>

这就是你得到这个例外的原因