zoukankan      html  css  js  c++  java
  • JSF + Primefaces: Problem with “rendered” components with ajax

    Cant seem to get rendered to work correctly with update attributes. Here is my codes

            <ui:define name="left">
                <h:form>
                    <p:commandLink value="Hey"
                    actionListener="#{bean.setRenderComment}"
                    update="comment"/>
                </h:form>
           </ui:define>
           <ui:define name="right">
                <h:panelGroup id="comment" rendered="#{bean.renderComment}">
                    hello
                </h:panelGroup>
           </ui:define>
    renderComment is a boolean attributes inside bean. setRenderComment basically toggle the state of renderComment like this
    this.renderComment =!this.renderComment;

    Right, every time I click on the link Hey, I need to refresh to either render hello on or off. How can I fix it, so that I dont need to refresh.

    solution:

    am not using Primefaces but Richfaces on my projects. So I am not really aware on how the refresh process is done by Primefaces. However, I have an idea that can be tested easily.

    Your problem may be due to the fact that the component to re-render (i.e. update) is not found on the HTML page. If your rendered attribute is equals to false, then the <SPAN> with comment id is not integrated in the HTML page generated. Thus, when the Ajax request is received on the client side, the Ajax engine is not able to refresh this <SPAN> as it is not found.

    So what you can do is to always render your panelGroup and move your rendered attribute to a nested <h:outputText> that contains the Hello message.

    Here is what I am suggesting:

    <h:panelGroup id="comment"><h:outputText value="Hello" rendered="#{bean.renderComment}"/></h:panelGroup>

    This way, the panelGroup will always be refreshed after the Ajax call, and it will contain the Hello message or not, regarding the value of the renderComment attribute of your bean.

  • 相关阅读:
    UIWebView
    Do not access Object.prototype method 'hasOwnProperty' from target object.eslintno-prototype-builtins
    TypeError: ### is null,空指针导致的报错
    antd里面的Table渲染多出来数据问题
    VSCode保存时代码格式化
    前端GIT规范
    实现简单的数组去重?
    提取对象数组的公共元素
    Git常用面试知识点
    taro自定义导航标题(可根据路由参数或者接口返回字段定义页面导航标题)
  • 原文地址:https://www.cnblogs.com/sos-blue/p/3443003.html
Copyright © 2011-2022 走看看