使用Richfaces

时间:2016-09-06 12:44:11

标签: validation jsf richfaces rerender

我使用Richfaces 3.1.2和JSF 1.1

我在表单中有两个按钮textareaSubmitUpdate

  1. 按钮Submit提交表单
  2. 点击Update按钮会在textarea
  3. 中添加一些文字

    在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

    有人可以帮助我吗?

0 个答案:

没有答案