2012-04-24 47 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

它已經解決了。

我的問題是命令按鈕,我不得不財產過程=「@這個」,取出時,確認工作正常

相關問題