0

我正在使用 JSF 2.0 创建网页。

我想要做的是,在每个页面加载时调用setLastVisitedPage我在 bean 中的一种方法。MyBean

我可以通过简单地写来做到这一点

<h:body onLoad="#{MyBean.setLastVisitedPage()}"

但是我必须在所有页面中写入,并且已经创建了 30-40 页。:(

在页面中,因为我有共同的标题,所以我创建了一个名为commonPage.xhtml. 我正在考虑在此处包含该文件。

所以我在下面添加了,commonPage.xhtml这样每当加载任何页面时,myScript.js都会被调用,并且我会收到“我在这里”的警报。

<h:outputScript name="js/myScript.js" target="head" />

并且myScript.js

onload = alert("i m here");

每当我打开任何新页面时,我都会收到“我在这里”的警报。

现在我的问题是如何添加#{MyBean.setLastVisitedPage()}javascript 以便setLastVisitedPage()为每个页面调用?

有没有替代方法?可能是我想错了。

4

1 回答 1

1

由于您使用的是 JSF,因此您最好使用PreRenderViewEvent,就像这样

 <f:metadata>
     <f:event type="preRenderView" listener="#{MyBean.putLastVisitedPage}"/>
 </f:metadata>


public void putLastVisitedPage(ComponentSystemEvent event){
}

看看这里JSF 2 PreRenderViewEvent Example

于 2012-07-23T11:31:00.607 回答