簡體   English   中英

有條件地要求以a4j格式進行jsf驗證

[英]Conditionally required jsf validation in a4j form

我在jsf / a4j中使用條件評估表達式有一個小問題

這是我的代碼

<a4j:form>
         <h:inputText id="id1" value="#{mybean.myvalue}" size="1"
                   required="#{not mybean.condition}"
                   rendered="#{not mybean.condition}"
                   requiredMessage="Put a number in here" />

           <h:selectBooleanCheckbox value="#{mybean.condition}">
                <a4j:support event="onclick" reRender="id1"/>
            </h:selectBooleanCheckbox>

<a4j:commandButton action="#{mybean.myaction}" value="Do something" />

 </a4j:form>

布爾復選框有條件地啟用/禁用驗證。

這不起作用:a4j:commandButton只是跳過了驗證。

謝謝。

如果inputText驗證失敗(“過程驗證”階段),則不會更新值mybean.condition (“過程更新”階段)。 由於文本字段使用必填屬性,因此很有可能。

RichFaces文檔的生命周期:

替代文字
(來源: jboss.org

如果任何JSF階段失敗,則生命周期將跳至“渲染響應”,以避免對無效輸入進行操作。 您可以使用h:messageh:messages標記來查看報告的錯誤(盡管由於使用的是AJAX,所以必須將它們放在可以重新呈現的內容中)。

我猜想,如果在aj4:support標記上設置ajaxSingle屬性,您將獲得想要的行為。 該文檔說,這將僅提交控件的值,因此該文本字段將不涉及“應用請求值/過程驗證/過程更新”階段。

大豆的范圍是多少? 如果是請求范圍,則在您單擊按鈕時將重置其值,並且可能完全處理了輸入字段(如果渲染解析為“ false”)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM