我使用Richfaces 3.1.2和JSF 1.1
我在表单中有两个按钮textarea
:Submit
和Update
Submit
提交表单Update
按钮会在textarea
在textarea中使用验证器,如果textarea仅包含当前连接用户的名称,则此验证器会抛出异常,例如,如果当前连接的用户是“root”且textarea包含“root”,则应抛出异常
Textarea的代码(默认情况下,它包含当前连接用户的名称):
<h:panelGroup id="messagePanel">
<h:inputTextarea id="message" label="Update" value="#{beanName.message}">
<f:validator validatorId="messageValidator" />
</h:inputTextarea>
</h:panelGroup>
提交按钮:
<h:commandLink id="validerLink" value="Submit" action="accueil"
actionListener="#{beanName.saveInformation}">
<f:param value="#{param.evenementId}" name="evenementId" />
</h:commandLink>
更新按钮:
<a4j:commandLink id="inclureRapportLink" value="Update"
actionListener="#{beanName.updateText}" reRender="message">
<f:param name="evenementId" value="#{param.evenementId}" />
</a4j:commandLink>
问题:如果textarea包含当前连接用户的名称,则按钮Update
不会更新文本,因为验证程序会抛出异常。
所以我想要做的是禁用验证器,但前提是用户点击按钮Update
我尝试在更新按钮中添加immediate="true"
,但这不起作用,因为显然immediate="true"
和reRender="message"
不能一起工作(bean已更新,但不是前)。
我在这里尝试了这个解决方案:Skip validation on re-render and apply only on form submit但是也没有用,我收到了错误Undefined property clientId
,即使required
属性设置为false
,也会调用验证程序must implement OnFragmentInteractionListener
。
有人可以帮助我吗?