JSF2AJAX不需要的呈现为两种形式
因此,这里与经常被问到的“如何将消息呈现到多个表单”相反。我在一个页面上有两个表单,在一个表单中进行验证后,两个表单的提交按钮下方都会显示摘要错误(如果验证失败)。如果代码成功发送所需的电子邮件,则确认消息也会以两种形式显示。他们只应以提交的形式出现。inputExt下面的消息正常工作。我做错了什么JSF2AJAX不需要的呈现为两种形式,ajax,jsf-2,Ajax,Jsf 2,因此,这里与经常被问到的“如何将消息呈现到多个表单”相反。我在一个页面上有两个表单,在一个表单中进行验证后,两个表单的提交按钮下方都会显示摘要错误(如果验证失败)。如果代码成功发送所需的电子邮件,则确认消息也会以两种形式显示。他们只应以提交的形式出现。inputExt下面的消息正常工作。我做错了什么 <p:panel> <h:form id="id_rememberUserNameForm" prependId="false"> &
<p:panel>
<h:form id="id_rememberUserNameForm" prependId="false">
<td>
...
<p:inputText
id="id_existingEmailAddress"
styleClass="registerinputtext width_20em"
size="20"
maxlength="60"
value="#{credentialsManagementBean.emailAddress}"
validator="#{multivalidator.validateEmailExists}" >
<f:ajax event="blur" render="id_noSuchEmailError" />
</p:inputText>
</td>
</tr>
<!-- validation error handling +++++++++++++++++ -->
<tr class="errorMessage min_height_1p5em">
<td colspan="2" >
<h:message for="id_existingEmailAddress"
id="id_noSuchEmailError"
showDetail="false"
showSummary="true"/>
</td>
</tr>
</table>
<p:commandButton id="id_remindUsernameButton"
value="Retrieve Username"
action="#{credentialsManagementBean.rememberUsername}" >
<f:ajax execute="id_rememberUserNameForm" render="id_UserReminderMessage" />
</p:commandButton>
<p:messages id="id_UserReminderMessage"
showSummary="false"
showDetail="true"
autoUpdate="true" />
</h:form>
</p:panel>
<!-- next form +++++++++++++++++ -->
<p:panel>
<h:form id="id_resetPasswordForm" prependId="false">
...
<p:inputText
id="id_existingUsername"
styleClass="registerinputtext width_20em"
size="20"
maxlength="20"
value="#{credentialsManagementBean.username}"
validator="#{multivalidator.validateUsernameExists}">
<f:ajax event="blur" render="id_noSuchUserError" />
</p:inputText>
</td>
</tr>
<!-- validation error handling +++++++++++++++++ -->
<tr class="errorMessage min_height_1p5em">
<td colspan="2" >
<h:message for="id_existingUsername"
id="id_noSuchUserError"
showDetail="true"
showSummary="false"/>
</td>
</tr>
</table>
<p:commandButton id="id_resetPasswordButton"
value="Retrieve Username"
action="#{credentialsManagementBean.resetPassword}" >
<f:ajax execute="id_resetPasswordForm" render="id_pwResetMessage" />
</p:commandButton>
<p:messages id="id_pwResetMessage"
showSummary="true"
showDetail="false"
autoUpdate="true" />
</h:form>
</p:panel>
...
...
在
上使用更新看起来很有效。所以试试这个:
<p:commandButton id="id_remindUsernameButton" value="Retrieve Username"
action="#{credentialsManagementBean.rememberUsername}" update="id_UserReminderMessage" process="@form">
</p:commandButton>
由于默认值是ajaxsubmit,您不需要另一种方式,它完全停止显示。grrr:)也不走运。在接下来的几周里,我将把每个表单底部的消息去掉,因为每个字段下面都有错误,应该足够好了。现在,我将把成功的结果转发到成功页面。也许更好。如果可以的话,我会在只有一个表单的页面上使用这些消息。我认为这是一件容易的事,如果你知道怎么做,但如果你不知道怎么做就太复杂了。框架,离不开它们,离不开它们。:/谢谢你的帮助。你至少让它停止出现两次。:)我给了帮助一个分数。