Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jsf Bean验证不需要';行不通_Jsf_Jsf 2_Bean Validation - Fatal编程技术网

Jsf Bean验证不需要';行不通

Jsf Bean验证不需要';行不通,jsf,jsf-2,bean-validation,Jsf,Jsf 2,Bean Validation,我尝试使用Bean验证而不是JSF验证,因为这是一种更枯燥的方法,我在模型上使用注释,但是当我在JSF字段上插入空数据时,它什么也不做 我使用的注释都没有任何效果,就像它们不存在一样 我正在使用Tomcat8 我的xhtml <?xml version="1.0" encoding="ISO-8859-1" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/T

我尝试使用Bean验证而不是JSF验证,因为这是一种更枯燥的方法,我在模型上使用注释,但是当我在JSF字段上插入空数据时,它什么也不做

我使用的注释都没有任何效果,就像它们不存在一样

我正在使用Tomcat8

我的xhtml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</h:head>
<h:body>
<h1>Cadastro de funcionario</h1>
<h:form>
    <h:messages/>
    <h:panelGrid columns="3">
        <h:outputLabel value="Salário: R$ " for="campo-salario"/>
        <h:inputText id="campo-salario" value="#{funcionarioBean.funcionario.salario}">
            <f:convertNumber locale="pt_BR"/>
        </h:inputText>
        <h:message for="campo-salario" />

        <h:outputLabel value="Código: " for="campo-codigo"/>
        <h:inputText id="campo-codigo" value="#{funcionarioBean.funcionario.codigo}"/>
        <h:message for="campo-codigo"/>

        <h:outputLabel value="Data: " for="campo-aniversario"/>
        <h:inputText id="campo-aniversario" value="#{funcionarioBean.funcionario.aniversario}">
            <f:convertDateTime pattern="dd/MM/yyyy" />
        </h:inputText>
        <h:message for="campo-aniversario"/>

        <h:commandButton value="Cadastrar" action="#{funcionarioBean.mensagem}"/>
    </h:panelGrid>

</h:form>
</h:body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>K19-Conversao-e-Validacao</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

    <context-param>
        <param-name>com.sun.faces.writeStateAtFormEnd</param-name>
        <param-value>false</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
        <param-value>true</param-value>
    </context-param>
</web-app>
我的函数类

import java.util.Date;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

public class Funcionario {
    @NotNull(message="{br.com.k19.Funcionario.nome")
    @Min(value = 0)
    private Double salario;

    @NotNull
    @Min(value = 5)
    @Max(value = 19)
    private Integer codigo;

    @NotNull
    private Date aniversario;

    public Double getSalario() {
        return salario;
    }
    public void setSalario(Double salario) {
        this.salario = salario;
    }
    public Integer getCodigo() {
        return codigo;
    }
    public void setCodigo(Integer codigo) {
        this.codigo = codigo;
    }
    public Date getAniversario() {
        return aniversario;
    }
    public void setAniversario(Date aniversario) {
        this.aniversario = aniversario;
    }

}
我的库 还不能发布图片。 解放党 >

My web.xml

<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:f="http://java.sun.com/jsf/core">
<h:head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<title>Insert title here</title>
</h:head>
<h:body>
<h1>Cadastro de funcionario</h1>
<h:form>
    <h:messages/>
    <h:panelGrid columns="3">
        <h:outputLabel value="Salário: R$ " for="campo-salario"/>
        <h:inputText id="campo-salario" value="#{funcionarioBean.funcionario.salario}">
            <f:convertNumber locale="pt_BR"/>
        </h:inputText>
        <h:message for="campo-salario" />

        <h:outputLabel value="Código: " for="campo-codigo"/>
        <h:inputText id="campo-codigo" value="#{funcionarioBean.funcionario.codigo}"/>
        <h:message for="campo-codigo"/>

        <h:outputLabel value="Data: " for="campo-aniversario"/>
        <h:inputText id="campo-aniversario" value="#{funcionarioBean.funcionario.aniversario}">
            <f:convertDateTime pattern="dd/MM/yyyy" />
        </h:inputText>
        <h:message for="campo-aniversario"/>

        <h:commandButton value="Cadastrar" action="#{funcionarioBean.mensagem}"/>
    </h:panelGrid>

</h:form>
</h:body>
</html>
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://xmlns.jcp.org/xml/ns/javaee" xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee http://xmlns.jcp.org/xml/ns/javaee/web-app_3_1.xsd" version="3.1">
  <display-name>K19-Conversao-e-Validacao</display-name>
  <servlet>
    <servlet-name>Faces Servlet</servlet-name>
    <servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
    <load-on-startup>1</load-on-startup>
  </servlet>
  <servlet-mapping>
    <servlet-name>Faces Servlet</servlet-name>
    <url-pattern>*.xhtml</url-pattern>
  </servlet-mapping>

    <context-param>
        <param-name>com.sun.faces.writeStateAtFormEnd</param-name>
        <param-value>false</param-value>
    </context-param>

    <context-param>
        <param-name>javax.faces.INTERPRET_EMPTY_STRING_SUBMITTED_VALUES_AS_NULL</param-name>
        <param-value>true</param-value>
    </context-param>
</web-app>

K19-Conversao-e-Validacao
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
*.xhtml
com.sun.faces.writestateformend
假的
javax.faces.explait_EMPTY_STRING_SUBMITTED_VALUES_为_NULL
真的

再次下载hibernate JAR以匹配版本

下载验证程序:

下载ORM:

我的自由

现在按计划工作


ref:

查看。更新了问题,提供了有关链接的更多信息,谢谢,但仍然无效。尝试将一些
@NotNull
注释替换为
@Size(min=1)
。我所有的字段都是数字,我有#min和#Max,但它们也不起作用。将#Size(min=1)添加到salario,什么也没发生。我有一个使用bean验证的工作项目<代码>hibernate-validator-4.0.2.GA.jar在那里使用。你有一个更新的版本。