3

有没有办法将页面标题包含在f:ajax标签中,以便在运行时更新其内容?目前我的 f:ajax 标签看起来像这样 -

<f:ajax render="@form">

我尝试将 id 添加到 h:head 标记,并将该 id 添加到 f:ajax 标记的 'render' 属性,但如果这样做,页面加载时会出现错误 -

<f:ajax> contains an unknown id 'pageHead' - cannot locate it in the context of the component B1

干杯,埃雷兹

4

1 回答 1

5

有趣的问题。我认为在 ajax 的渲染(如@form)中没有这样的命令来重新渲染页面标题。你可以做的是像这样包装或<title>其他<h:form>“分组”组件(例如,h:panelGroup如丹尼尔所说):

    <h:form id="titleForm">
        <title>#{fooBean.fooTitle}</title>
    </h:form>

然后调用 ajax update 例如。带按钮:

        <h:commandButton immediate="true" value="Change title">
            <f:ajax event="click" render=":titleForm"  listener="#{fooBean.changeTitle}"/>
        </h:commandButton>

豆:

  private String fooTitle;

  public void changeTitle() {
        this.fooTitle= "updatedTitle";
  }
// getter/setter

我不知道你还能做什么,这应该可以。所以包装你title<h:form id="...">然后从ajax渲染它。

于 2012-04-15T17:57:43.943 回答