我有以下代码:
<h:form>
<h:inputText id="inputField" value="#{bean.myProperty}">
<f:validateLongRange
minimum="#{bean.minimum}"
maximum="#{bean.maximum}"/>
</h:inputText>
<h:commandButton id="submit" value="Submit" >
<f:ajax execute="inputField" render="outputField errors" />
</h:commandButton>
<h:outputText id="outputField" value="#{bean.myPropertyFormatted}"/>
<h:message id="errors" for="inputField"/>
</h:form>
当 inputText 验证失败时,我想从用户那里删除/隐藏 outputText。什么是最优雅和面向未来的重构方式来做到这一点?
我尝试rendered="#{!facesContext.validationFailed}"
在 outputText 元素上设置属性,但这仅确定 outputText 元素是否被重新渲染,而不是保持旧文本不变。但是,当 validateLongRange 验证失败时,我想完全删除/隐藏用户的 outputText,因为用户将看到验证错误消息,并且对基于先前有效输入的旧输出消息不感兴趣仍然是存储在 bean 中的值。