validation - JSF:根据验证成功或失败有条件地更新

标签 validation jsf jsf-2 primefaces java-ee-6

在我的 JSF 应用程序中,我试图在我的命令按钮更新属性中添加一些条件,以便在验证失败/成功时我可以控制组件进行更新。

引用PrimeFaces: conditional update on validation我试着用

<p:commandLink process="@form" listener="#{foo}" 
  update="somethingElse" oncomplete="if (!args.validationFailed) $("#link").click();">
<p:commandLink style="display:none" id="link"
  update="something">

但我不知道为什么这种方法对我不起作用..那个特定组件的点击事件对我不起作用..我试图执行同一问题的公认答案,但我不明白这是如何解决问题的目的...

我的目的是根据验证成功或失败的结果有条件地更新...支​​持我有 3 个组件 X Y Z .. 我正在尝试做这样的事情..
<p:commandLink process="@form" listener="#{foo}" 
      update="if(Validation fail)updateSomething[e.g X and Y] **else** update somethingelse[e.g X  Y and Z]">

更准确地说,如果验证失败,那么我只想在验证成功时更新 X 和 Y 组件,而不是更新 X Y 和 Z 组件。

请帮帮我..
提前致谢。

最佳答案

第一个问题是您使用的 EL 语法无效。您使用 " 过早地关闭了属性值而不是 '在 JavaScript 代码中。使用 \" 转义嵌套引号或者只是使用 '反而。

<p:commandLink process="@form" listener="#{foo}" update="somethingElse" 
    oncomplete="if (!args.validationFailed) $('#link').click();">

第二个可能的问题是<p:commandLink id="link">的客户端ID不是 "link"根本。默认情况下,它带有父级的 ID <h:form>成分。客户端 ID 是 JSF 生成的 HTML 元素 ID。在浏览器中打开页面,右键单击并查看源代码自己查看。它看起来像 id="formId:link" .您需要在 jQuery 选择器中准确使用该 ID。
<p:commandLink process="@form" listener="#{foo}" update="somethingElse" 
    oncomplete="if (!args.validationFailed) $('#formId\\:link').click();">

也可以看看:
  • How to select JSF components using jQuery?


  • 另一种方法是在 listener="#{foo}" 后面的方法中执行具体工作。反而。
    if (!facesContext.isValidationFailed()) {
        RequestContext.getCurrentInstance().update("somethingElse");
    }
    

    关于validation - JSF:根据验证成功或失败有条件地更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11049974/

    相关文章:

    C++输入验证以确保输入的是数字而不是字母

    java - 如何最好地使用 Java 部分验证电话号码

    jsf - 无法使用 f :metadata f:viewAction from inside components

    php - Laravel 支持 return Redirect::back()->withFile() 吗?

    javascript - 使用 HTML 表单验证仅验证可见字段?

    css - 如何将颜色设置为 f :selectItem in primefaces?

    JSF - 获取url参数并选择页面 - Servlet?

    jsf-2 - 从一种表单提交另一种表单的数据 JSF

    jsf-2 - 如何使用 EL 2.2 方法表达式将动态参数传递给支持 bean?

    JSF 2.1 + RichFaces 4 - 分页 dataGrid