2012-08-13 37 views
0

我試圖實現一個編輯/添加個人資料頁面看起來如下:不同的驗證規則JSF

  • 圖像上傳組件(戰斧T:inputFileUpload)與上傳按鈕
  • 幾個輸入文本字段
  • 取消和保存按鈕

至於說,是用於添加一個新的配置文件,以及編輯現有的這種形式。起初,我使用了兩個元素,一個用於文本輸入,一個用於上傳組件。這樣做的問題是,由於上傳組件不支持Ajax /局部渲染,因此整個頁面都會重新加載,並且文本輸入的任何更改都會丟失。當我使用一個統一的文件時,當上傳按鈕被按下並且用戶被迫在可能上傳圖像之前先填寫所有輸入時,在文本區域上觸發驗證。

我希望的行爲是,如果textinputs沒有改變,我仍然可以上傳圖片,同時正在對輔助bean進行更改並進行驗證。只有當按下最終提交按鈕時,纔會觸發未更改/空字段的驗證。如何才能做到這一點?任何標準的場景/最佳實踐方法爲此或我必須實現valueChange監聽器?謝謝你們提前和親切的問候!

回答

0

問題解決了,我寫了一個自定義的驗證和檢查,使用這種觸發提交表單的動作:

ctx.getExternalContext().getRequestParameterValuesMap().containsKey("form:uploadButton"); 

其中CTX是FacesContext中的當前實例。也許這有助於某人,但它是一種解決方法,但它可以完成這項工作。