【发布时间】:2016-06-12 16:58:18
【问题描述】:
在我的 XHTML 页面中,我从 @ManagedBean 类中调用了一个方法。仅当我单击链接该方法的链接时才应执行该方法:
<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')}" />
奇怪的是为什么每次刷新页面时都会执行该方法而不单击链接。我希望该方法仅在单击链接时执行。我也试过 h:commandLink 但结果是一样的。你知道我需要改变什么,或者有什么问题吗? @ManagedBean 类是应用程序范围的。我调用的方法如下:
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);
}
}
【问题讨论】:
-
我必须找到重复项,但这是因为如果您将 EL 包含在操作方法以外的任何其他内容中,则会在页面加载时调用它来呈现 html。 onclick 不是 jsf 意义上的操作方法,(它有点在 html 上下文中)
-
感谢@Kukeltje 的回答,如果它与 h:commandButton 一起使用,我会尝试更改并返回
-
或者
commandLink和stackoverflow.com/questions/28623664/…也有关系 -
我尝试过使用 h:commandButton 和 h:commandLink。还是行不通。我刷新页面并自动调用该方法。太奇怪了。