如何在页面刷新时停止来自 @ManagedBean class 的自动方法调用,JSF
How can be stopped automatic method call from @ManagedBean class at page refresh, JSF
在我的 XHTML 页面中,我从我的@ManagedBean class 调用一个方法。仅当我单击 link 编辑方法的 link 时才应执行该方法:
<h:link value="Continue Reading »"
outcome="contracts/resources/data/imag2_facebook.html"
onclick="#{sessionFilter.incForLink2('contracts/resources/imagini/facebook.jpg','Facebook down? Current problems and status', 'contracts/resources/imagini/facebook.jpg')}" />
很奇怪为什么在每次页面刷新时都执行该方法而不单击 link。我希望该方法仅在我单击 link 时执行。我也尝试过 h:commandLink 但结果是一样的。你知道我需要改变什么,或者哪里出了问题吗? @ManagedBean class 是应用程序范围的。我调用的方法如下:
public void incForLink2(String link, String title, String imgAllLink) {
Article article = links.get(link);
if (article != null) {
Integer pageHits = article.getPageHits();
article.setPageHits(pageHits + 1);
System.out.println(link + " = " + pageHits);
} else {
Article article1 = new Article(1, title, link, imgAllLink);
links.put(link, article1);
}
}
onClick
是网络浏览器中 JavaScript 的处理程序!您调用的方法是 Java 并在服务器上执行!
Java 在网站发送到浏览器之前渲染网站,在这个阶段是方法被调用。将 java 脚本发送到浏览器后就可以执行了,这是第二阶段。您只需要向服务器发出新请求以执行 java-methods。我更喜欢使用 a4j:jsFunction.
在我的 XHTML 页面中,我从我的@ManagedBean class 调用一个方法。仅当我单击 link 编辑方法的 link 时才应执行该方法:
<h:link value="Continue Reading »"
outcome="contracts/resources/data/imag2_facebook.html"
onclick="#{sessionFilter.incForLink2('contracts/resources/imagini/facebook.jpg','Facebook down? Current problems and status', 'contracts/resources/imagini/facebook.jpg')}" />
很奇怪为什么在每次页面刷新时都执行该方法而不单击 link。我希望该方法仅在我单击 link 时执行。我也尝试过 h:commandLink 但结果是一样的。你知道我需要改变什么,或者哪里出了问题吗? @ManagedBean class 是应用程序范围的。我调用的方法如下:
public void incForLink2(String link, String title, String imgAllLink) {
Article article = links.get(link);
if (article != null) {
Integer pageHits = article.getPageHits();
article.setPageHits(pageHits + 1);
System.out.println(link + " = " + pageHits);
} else {
Article article1 = new Article(1, title, link, imgAllLink);
links.put(link, article1);
}
}
onClick
是网络浏览器中 JavaScript 的处理程序!您调用的方法是 Java 并在服务器上执行!
Java 在网站发送到浏览器之前渲染网站,在这个阶段是方法被调用。将 java 脚本发送到浏览器后就可以执行了,这是第二阶段。您只需要向服务器发出新请求以执行 java-methods。我更喜欢使用 a4j:jsFunction.