在p:dataTable中使用验证器时出现问题

时间:2012-04-24 15:54:22

标签: jsf primefaces datatable validation

当我在dataTable的字段中使用f:validator时,如果我在验证器类中插入断点,它就不起作用。

我的数据表:

<p:dataTable value="#{contrato.plantillaPrograma}" var="pl" scrollHeight="300" rendered="#{contrato.abrirPrograma}" autoUpdate="true">
    <p:column headerText="#{txtMsg['crearContrato.fecha']}" style="width:125px"
    sortBy="#{pl.fecha}">
        <h:inputText value="#{pl.fecha}">
            <f:converter converterId="dateConverter" />
        </h:inputText>
    </p:column>
    <p:column headerText="#{txtMsg['crearContrato.programa']}" style="width:125px"
    sortBy="#{pl.programa}">
        <h:inputText value="#{pl.programa}" />
    </p:column>
    <p:column headerText="#{txtMsg['crearContrato.fechaFactura']}" style="width:125px"
    sortBy="#{pl.fechaFactura}">
        <p:inputText value="#{pl.fechaFactura}" validator="sheetEnFirme">
            <f:converter converterId="dateConverter"/>
        </p:inputText>
    </p:column>
</p:dataTable>

我的课程:     包es.axpo.jsf.validator;

import javax.faces.application.FacesMessage;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
import javax.faces.validator.FacesValidator;
import javax.faces.validator.Validator;
import javax.faces.validator.ValidatorException;

@FacesValidator(value="sheetEnFirme")
public class SheetEnFirmeValidator implements Validator{
    public void validate(FacesContext fc, UIComponent comp, Object obj)
            throws ValidatorException {
        throw new ValidatorException(new FacesMessage("Error"));
    }
}

2 个答案:

答案 0 :(得分:2)

确保#{contrato} bean至少为@ViewScoped。确保您没有在其getter方法中准备plantillaPrograma,而是在bean的(post)构造函数中。确保dateConverter没有抛出ConverterException,您应该注意到<h:message(s)>或服务器日志中的faces消息。

顺便说一句,为什么你不只是将内置<f:convertDateTime>用于日期?

答案 1 :(得分:0)

它已经解决了。

我的问题出在命令按钮上,我有属性进程=&#34; @ this&#34;,删除后,验证工作正常