2012-04-24 64 views
0

当我在dataTable的字段中使用f:validator时,如果在我的验证程序类中插入断点,它将无法执行。在p:dataTable中使用验证程序时出现的问题

我的dataTable:

<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")); 
    } 
} 
+0

你不使用'F:在给定的代码,但'validator' validator'属性(通常应该是相同的)。但是你是否用'f:validator'尝试了它? – 2012-04-25 07:50:26

+0

是的,首先,我使用了f:验证器标签。 – Didvae 2012-04-25 08:08:56

回答

2

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

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

+0

你好,这个bean是viewScoped,并且plantillaPrograma是在一个fileUpload方法中生成的(上传一个excel文件我生成了这个表),dateConverter没有抛出任何异常,我检查了服务器日志,没有什么不对。我使用sutom转换器是因为当我开始制作应用程序的体系结构时,我定义了一些转换器,可能忽略了已经实现的转换器,但转换器工作正常,问题出在验证器上。我不知道为什么,但这只发生在我使用dataTable时,在其他视图中,工作正常。感谢你的回答 – Didvae 2012-04-25 07:46:38

0

它已经解决了。

我的问题是命令按钮,我不得不财产过程=“@这个”,取出时,确认工作正常

相关问题