【问题标题】:Ajax Validation Without Persist没有持久化的 Ajax 验证
【发布时间】:2011-03-09 17:48:51
【问题描述】:

大家好,

我正在尝试在我的 Seam 应用程序中设置一些验证,并且它可以正常工作,但它有一些我想避免的副作用。我在输入表单上设置了如下字段:

<label for="displayName" class="required">Display Name:</label>
<s:decorate id="displayNameDecorate" styleClass="errorwrapper">
    <h:inputText id="displayName" value="#{presenceHome.instance.displayName}" required="true">
        <a4j:support event="onblur" reRender="displayNameDecorate" ajaxSingle="true"/>
    </h:inputText>
    <a4j:outputPanel ajaxRendered="true">
        <h:message for="displayName" styleClass="errormessage"/>
    </a4j:outputPanel>
</s:decorate>

这个方法很好用。如果我输入的值被认为对显示名称无效,则会显示验证错误。我遇到的麻烦是输入的值何时有效。当我选中该字段时,a4j:support 会触发,导致数据被验证(通过),然后持久化。现在,如果在进入下一个字段后我决定不想编辑此记录,我无法取消,恢复我的更改 - 我的更改已经保存到数据库中。

无论如何我可以关闭 AJAX 验证但不会发生任何持久性吗?还是我只需要忘记 ajax 验证并在表单提交时触发它。

【问题讨论】:

    标签: java seam


    【解决方案1】:

    我不确定您显示的代码中发生了什么,但是使用 Richfaces 的 之类的东西不会让生活更轻松吗?文档页面是here

    【讨论】:

    • 我之前没见过 RichFaces 标签。功能列表中的第一个声明“跳过除验证之外的所有 JSF 处理”,这正是我想要的。所以感谢您指出这一点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-02
    • 2016-12-31
    • 2013-12-08
    • 2019-06-25
    相关资源
    最近更新 更多