我使用 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>
问题:如果文本区域包含当前连接用户的名称,则按钮Update
不会更新文本,因为验证器会引发异常。
所以我想要做的是禁用验证器,但前提是用户点击按钮Update
我试图添加immediate="true"
更新按钮,但这没有用,因为显然immediate="true"
并且reRender="message"
不能一起工作(bean 已更新,但不是前面)。
我也在这里尝试了这个解决方案:在重新渲染时跳过验证并仅在表单提交上应用,但这也不起作用,我得到了错误Undefined property clientId
,并且即使required
属性设置为 ,也会调用验证器false
。
有人能帮我吗?