Icefaces / JSF页面不会更新<title> </title>

时间:2012-04-26 13:26:55

标签: java java-ee jsf-2 jboss icefaces

从一个页面导航到另一个页面时,我的页面中不会更新。 谁能告诉我为什么?

设置:

Page a.xhtml:

<html
        xmlns="http://www.w3.org/1999/xhtml"
        xmlns:ui="http://java.sun.com/jsf/facelets"
        xmlns:f="http://java.sun.com/jsf/core"
        xmlns:h="http://java.sun.com/jsf/html"
        xmlns:ice="http://www.icesoft.com/icefaces/component">
    <h:head>
    <ui:insert name="stuffToInclude">
    </ui:insert>
    </h:head>
    <h:body>
    ....
    </h:body>

Page b.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:c="http://java.sun.com/jsp/jstl/core"
    xmlns:ice="http://www.icesoft.com/icefaces/component">

<ui:composition template="/a.xhtml">


    <ui:define name="stuffToInclude">
        <meta name="description" content="pierre" />
        <title>
            <ui:insert name="title"/>
        </title>
    </ui:define>

    </h:head>

Page c.xhtml:

<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:ui="http://java.sun.com/jsf/facelets"
    xmlns:f="http://java.sun.com/jsf/core"
    xmlns:h="http://java.sun.com/jsf/html"
    xmlns:ice="http://www.icesoft.com/icefaces/component">
    <h:head>
        <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
    </h:head>
    <h:body>
        <ui:composition template="/b.xhtml">
    <ui:define name="title">
       <ice:outputText id="title" nospan="true" value="C Title" />
    </ui:define>
        .....
    </h:body>
</html>

以这种方式导航到页面c.jsf:

FacesContext.getCurrentInstance().getViewRoot().setViewId("c.xhtml");

问题是“TITLE”元素不会更新为新标题。在保留c.xhtml之前,它保留了我所在的第一页的值。 似乎没有为新页面加载整个“HEAD”元素。 建议?

感谢

1 个答案:

答案 0 :(得分:0)

我们现在已经改变了导航到页面的方式。 现在我们正在使用:

FacesContext.getCurrentInstance().getExternalContext().redirect(getViewId());