只是根據UIForm#isSubmitted()
有條件地呈現<h:messages>
。
<h:form binding="#{form1}">
<h:messages rendered="#{form1.submitted}" />
...
</h:form>
<h:form binding="#{form2}">
<h:messages rendered="#{form2.submitted}" />
...
</h:form>
<h:form binding="#{form3}">
<h:messages rendered="#{form3.submitted}" />
...
</h:form>
或者只是引入一些ajax魔術,只更新當前窗體而不是整個視圖。
<h:form>
<h:messages />
...
<h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>
<h:form>
<h:messages />
...
<h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>
<h:form>
<h:messages />
...
<h:commandButton ...><f:ajax execute="@form" render="@form" /></h:commandButton>
</h:form>
所以我要處理驗證後發送給表示層&使用JS/jQuery的做錯誤演示任務自己的錯誤消息。
創建custom component or renderer它取代了<h:messages>
。
爲什麼你不能使用'h:messages'?當您提交表單時,只有*表單將被驗證,並且只會顯示*這些*錯誤信息。我傾向於將「p:growl」用於僅限全局的消息,而對於特定於形式的消息則使用「p:messages」。 – RinaldoPJr
,因爲我在頁面上有幾個表單,並且每個表單都需要驗證支持,以防我在每個表單中包含h:messages,那麼與一個表單相關的所有消息將以另一種形式顯示,而不是我想要的。 –