【问题标题】:JSF - No reload contentJSF - 没有重新加载内容
【发布时间】:2011-05-25 19:25:54
【问题描述】:

伙计们! 我在 JSF <h:dataTable> 中有一个表,但是当我在表中创建一个新对象(使用 JPA 转发)时,有时它会显示,但有时不会。我必须单击一个选项卡来重新加载 xhtml 的内容,因为没有显示新元素。 从支持 bean 将对象添加到列表后,我可以重新加载页面吗?

感谢您的阅读,对不起我的英语。

【问题讨论】:

    标签: jsf


    【解决方案1】:

    显然,您将数据表的项目列表存储在会话范围内,而不是在添加新项目时重新加载它。您需要在添加新项目的action方法中重新加载它。

    public void add() {
        saveNewItemInDB(newItem);
        items = reloadListOfItemsFromDB();
    }
    

    【讨论】:

      【解决方案2】:

      除了完全重新加载之外,您无法从支持 bean 控制页面,但如果您在某些操作上创建新对象,例如单击按钮,那么您可以使用 ajax 执行以下操作:

      <h:commandButton actionListener="#{bean.addNewObject}" value="Add">
        <f:ajax execute="@this" render="tableId" event="click" />
      </h:commandButton>
      

      如果你不想使用ajax并重新加载整个页面,那么使用commandButton的action参数:

      <h:commandButton action="#{bean.addNewObjectAction()}" value="Add"/>
      

      其中 addNewObjectAction 返回 null 以重新加载页面。

      【讨论】:

        猜你喜欢
        • 2015-11-23
        • 1970-01-01
        • 1970-01-01
        • 2014-03-24
        • 1970-01-01
        • 1970-01-01
        • 2021-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多