2011-07-21 43 views
2

我正在構建一個Seam應用程序,它基本上是一個分爲不同部分或模塊的巨大表單。我需要一種方法來確定模塊何時「完成」,這意味着該模塊中所有字段的驗證均通過。然後我需要在視圖中做一些事情,設置一個CSS類或其他。檢查部分JSF中的驗證錯誤

是這樣的:

<a:region id="region1"> 
    <s:div styleClass="#{invalid ? 'errors' : ''}"> 
     <h:inputText required="true" id="input1" /> 
     <h:inputText required="true" id="input2" /> 
     <h:commandButton value="Save this section" reRender="region1" /> 
    </s:div> 
</a:region> 

我想我有兩個選擇:

  • 使用某種視圖邏輯的(如#{無效}爲單個場)
  • 使用方法,在那裏我以編程方式獲取模塊的所有組件,並檢查它們是否存在驗證錯誤。

但是,我找不到任何方法來做任何他們。任何想法,如果這是可能的?

我們在Seam中使用JSF 1.2。

謝謝。

回答

4

您可以使用UIInput#isValid()來檢查特定輸入組件是否發生驗證錯誤。

<s:div styleClass="#{!input1.valid or !input2.valid ? 'errors' : ''}"> 
    <h:inputText binding="#{input1}" required="true" id="input1" /> 
    <h:inputText binding="#{input2}" required="true" id="input2" /> 
    <h:commandButton value="Save this section" reRender="region1" /> 
</s:div> 
+0

不錯,有效!不過,我也嘗試將組件綁定到bean中的屬性,但這樣做時我得到一個NullpointerException。你知道這件事嗎?我認爲它就像使用綁定=「#{myBean.input1}」,然後在bean中聲明一個UIInput屬性一樣簡單.. –

+0

好吧,剛剛發現你不能這樣做,當使用Seam .. –