In meiner XHTML-Seite rufe ich eine Methode aus meiner @ManagedBean-Klasse. Das Verfahren sollte nur dann ausgeführt werden, wenn ich auf den Link klicken, der das Verfahren verknüpft ist:Wie kann automatische Methodenaufruf von @ManagedBean-Klasse auf Seite aktualisieren gestoppt werden, JSF
<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')}" />
Es ist seltsam, warum die Methode bei jeder Aktualisierung der Seite ausgeführt wird, auf dem Link ohne klicken. Ich möchte, dass die Methode nur ausgeführt wird, wenn ich auf den Link klicke. Ich habe auch mit h: commandLink versucht, aber die Ergebnisse sind die gleichen. Hast du eine Idee, was ich ändern muss oder was ist falsch? Die @ManagedBean-Klasse ist Anwendungsbereich. Die Methode, die ich nenne, ist folgende:
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);
}
}
Ich muss das Duplikat finden, aber es ist, weil, wenn Sie EL in etwas anderes als eine Aktionsmethode enthalten, es beim Laden der Seite aufgerufen wird, um das HTML zu rendern. Ein onclick ist keine Aktionsmethode im jsf Sinne, (es ist Art im HTML Kontext) – Kukeltje
Mögliches Duplikat von [JSF Seite onload führt Knopfdruck aus] (http://stackoverflow.com/questions/25704443/jsf-page -onload-executes-button-click) – Kukeltje
Danke für die Antwort @Kukeltje, ich werde versuchen, zu ändern und wiederkommen, wenn es mit h funktioniert: commandButton –