Hibernate 服务器端验证错误

Hibernate 服务器端验证错误,hibernate,validation,Hibernate,Validation,我正在做服务器端验证。我有一个带有下拉列表的页面,如果我选择user1,它将显示卷号(在bean类中是长型)、名称、类、电子邮件id。如果我选择user2,它将隐藏卷号,并显示其他字段。但是,当单击用户2的提交按钮时,它正在验证rollno的隐藏字段,并将错误显示为未能将java.lang.String类型的属性值转换为属性retailerId所需的long类型;嵌套异常为java.lang.NumberFormatException:对于输入字符串: 下面是我的bean类代码 private

我正在做服务器端验证。我有一个带有下拉列表的页面,如果我选择user1,它将显示卷号(在bean类中是长型)、名称、类、电子邮件id。如果我选择user2,它将隐藏卷号,并显示其他字段。但是,当单击用户2的提交按钮时,它正在验证rollno的隐藏字段,并将错误显示为未能将java.lang.String类型的属性值转换为属性retailerId所需的long类型;嵌套异常为java.lang.NumberFormatException:对于输入字符串:

下面是我的bean类代码

private long rollNo;
@SafeHtml
private String name,
@SafeHtml
private String class
@SafeHtml
private String email
---setter and getter of above--
在Jsp文件中

<form:input tabindex="32" class="form-control" path="rollNo" placeholder="Enter rollNo" title="rollNo"
                                data-rule-required="true" data-rule-minlength="6" data-rule-maxlength="6"
                                data-msg-required="Enter a valid rollNo"
                                data-msg-minlength="Enter a valid rollNo"
                                data-msg-maxlength="Enter a valid rollNo"/>

你能告诉我我错在哪里吗?

当你收到一个请求并且在解析它之前,只需检查
卷号是否为null或空。它不应该验证user2的卷号,因为卷号是隐藏的。而且,如果我把@NotNull放进去,它也会显示出同样的错误。我解决了它。而不是长罗尔诺,我做了长罗尔诺,这很有效
$("#createUserForm").validate({
        invalidHandler: function(e, validator) {
            var errors = validator.numberOfInvalids();
            if (errors) {                   
                $("div.errorContainer").show().text("data missing");
            } else {
                $("div.errorContainer").hide();
            }
        },
        ignore : ':hidden',         
    });