0

经过几个小时的谷歌和几个教程后,我被打败了......这并不是我得到的错误可以给我提示问题的事实,而是完全没有它们让我发疯!

以下代码有效,只是不应该!用于检查输入是否为空或小于 3 个字符的注释永远不会运行。在部署项目或写入 name 变量时,它们也没有给出任何类型的错误。

public class testBean
{
    @NotNull
    @Size(min=3)
    private String name;
}

public void test()
{
    System.out.println(name);
}

和输入形式:

<h:form>
        <h:inputText value="#{testBean.name}" />
    <h:commandButton value="Send" action="#{testBean.test()}" />
</h:form>

我的猜测是造成问题的是tomcat,尽管我很确定我已经导入了所有必要的库。我正在使用的 IDE Eclipse 也是如此。

4

2 回答 2

5

至于库,我在“WEB-INF/lib”文件夹和“apache-tomcat-7/lib”文件夹中都包含了“validation-api-1.0.0.GA.jar”。

您只安装了 API,没有安装实现。API 是一个抽象契约,因此您可以在代码中声明/使用它,并可以自由选择实现。该实现包含具体代码并执行实际工作。您还需要安装 impl。JSR-303 参考实现是Hibernate Validator。下载详情在这里。目前最新的决赛是4.1.0。它包含hibernate-validator-4.1.0.Final.jar真正实现的文件。把它放进去Webapp/WEB-INF/lib。它不一定需要在 中Tomcat7/lib,我也会从那里删除 API 以防止未来的类路径冲突。

于 2011-04-20T15:12:06.483 回答
1

我遇到了同样的问题,并搜索了一段时间,在我的情况下,使用 hibernate-validator-4.2.0.Final.jar,我缺少 slf4j-api-1.6.4.jar。问题是休眠验证器不会崩溃,但不会告诉它不工作......

于 2012-05-18T15:22:10.480 回答