从一个页面导航到另一个页面时,我的页面中不会更新。 谁能告诉我为什么?
设置:
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”元素。 建议?
感谢
答案 0 :(得分:0)
我们现在已经改变了导航到页面的方式。 现在我们正在使用:
FacesContext.getCurrentInstance().getExternalContext().redirect(getViewId());