b / w @form值有什么区别,并明确提到<f:ajax>的render属性中的组件ID?

时间:2016-04-30 14:46:32

标签: ajax forms validation jsf-2.2 mojarra

考虑一下代码段:

<h:form>                                  
    <hr/>
    <h:panelGrid columns="3">
                Name:
        <h:inputText id="nameId" value="#{ajaxBean.name}" 
                     validator="nameValidator" 
                     f5:placeholder="Enter your name ..."/>
        <h:message id="msgNameId" showDetail="true" 
                   showSummary="true" for="nameId" 
                   style="color: red;"/>
                Surname:            
        <h:inputText id="surnameId" value="#{ajaxBean.surname}" 
                     validator="nameValidator" 
                     f5:placeholder="Enter your surname ..."/>
        <h:message id="msgSurnameId" showDetail="true" 
                   showSummary="true" for="surnameId" 
                   style="color: red;"/>            
    </h:panelGrid>

    <h:commandButton value="Submit">
                <f:ajax execute="@form" 
                        render="@form" listener="#
                        {ajaxBean.upperCaseNameAndSurname()}"/  
   </h:commandButton>

   <h:commandButton value="Cancel">
                <f:ajax execute="@this" 
                        render="@form"/>
   </h:commandButton>  
   <h:commandButton value="Clear/Reset">
                <f:ajax execute="@this" 
                        render="@form" 
                        listener="#{ajaxBean.cancelNameAndSurname()}"/> 
   </h:commandButton>
</h:form>  

resetValues= "true"似乎只有在component ids的{​​{1}}属性render属性中明确提到<f:ajax> 时才有效}按钮。

Submit而不是render="nameId msgNameId surnameId msgSurnameId"

这两种形式的差异究竟是什么?

如果render="@form"按钮的after re-render属性的值为(@form),则无效值仍为render

我绝对记得BalusC的一条评论,

  

验证阶段由于转换或验证而失败时   任何地方都出错,Submit通过验证的组件会   返回successfully以及local value验证将返回的组件   failed

如果名称有效且姓氏不是(或任何其他涉及无效值的组合),则在submitted valuesubmit之后,输入字段*(即有效字段)*为名称未清除。即使clear/ resetwhole form,我也只会看到已清除验证失败的字段。为什么呢?

以上评论是否表示与上述问题存在某种关系?

re-rendered方法只是做这件事 -

cancelNameAndSurname

我确信解决此问题的解决方案之一是 -

name = ""
surname = ""

0 个答案:

没有答案