[英]How to call Java method in Javascript
I am creating web page using JSF 2.0. 我正在使用JSF 2.0创建网页。
What I want to do is, call one method setLastVisitedPage
that I have in bean MyBean
when everypage loads. 我想做的是,当每个页面加载时,调用我在bean MyBean
拥有的一种方法setLastVisitedPage
。
I can do this by simply writing 我可以通过简单地写
<h:body onLoad="#{MyBean.setLastVisitedPage()}"
however I would have to write in all pages and already there are 30-40 pages created. 但是我必须写在所有页面上,并且已经创建了30-40页。 :( :(
In page as I have common heading, I have created one file called commonPage.xhtml
. 在具有通用标题的页面中,我创建了一个名为commonPage.xhtml
文件。 I was thinking to include that file here. 我当时正在考虑将该文件包含在这里。
So I added below in commonPage.xhtml
so that whenever any page is loaded, myScript.js
gets called and I get alert as "im here". 因此,我在commonPage.xhtml
添加了以下内容,以便无论何时加载任何页面,都会调用myScript.js
,并且我会收到“我在这里”的警报。
<h:outputScript name="js/myScript.js" target="head" />
and myScript.js
has 和myScript.js
有
onload = alert("i m here");
Whenever I open any new page, I am getting alert as "im here". 每当我打开任何新页面时,我都会收到“我在这里”的警报。
Now my question is how can I add #{MyBean.setLastVisitedPage()}
in javascript so that setLastVisitedPage()
get called for every page? 现在我的问题是如何在JavaScript中添加#{MyBean.setLastVisitedPage()}
,以便每个页面都调用setLastVisitedPage()
?
Is there any alternative way? 还有其他方法吗? May be I am thinking in wrong way. 可能是我想错了。
Since you are using JSF you better use the PreRenderViewEvent , like this 由于您正在使用JSF,因此最好使用这样的PreRenderViewEvent 。
<f:metadata>
<f:event type="preRenderView" listener="#{MyBean.putLastVisitedPage}"/>
</f:metadata>
public void putLastVisitedPage(ComponentSystemEvent event){
}
take a look here JSF 2 PreRenderViewEvent Example 在这里看看JSF 2 PreRenderViewEvent示例
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.