Ich habe mit dem Versuch, meine commandButtons zu bekommen, um eine Aktion (noch seltsam, ich habe kein Problem ziehen Daten aus Beans in meiner Seite enthalten) kämpfen. Ich habe sogar meinen Code an anderer Stelle veröffentlicht und ihn von anderen überprüfen lassen. Bis jetzt kein Glück. Also, ich denke, vielleicht eine andere Taktik ist in Ordnung. Kann jemand mich auf einige sehr einfache/grundlegende Beispielcode eines Projekts, das eine commandButton, die in der Lage, eine Aktion erfolgreich aufrufen hat zeigen?
Antwort
Zu viele Anzeigen?Eine häufige Ursache für Starts ist, dass die <h:form>
vergessen wurde. Gemäß der HTML-Spezifikation sollte jede Submit-Schaltfläche, die etwas an die Server-Seite übermitteln soll, innerhalb eines HTML <form>
Element.
Hier ist ein einfaches Hello World, wie man das in JSF macht:
JSF-Seite
<!DOCTYPE html>
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:h="http://java.sun.com/jsf/html">
<h:head>
<title>Hello World</title>
</h:head>
<h:body>
<h:form>
Enter your name
<h:inputText value="#{bean.input}" />
<h:commandButton value="submit" action="#{bean.submit}" />
</h:form>
<h:outputText value="#{bean.output}" />
</h:body>
</html>
Bohne:
package mypackage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.RequestScoped;
@ManagedBean
@RequestScoped
public class Bean {
private String input;
private String output;
public void submit() {
output = String.format("Hello %s!", input);
}
public String getInput() {
return input;
}
public String getOutput() {
return output;
}
public void setInput(String input) {
this.input = input;
}
}
Das ist alles :)
Weitere mögliche Ursachen für dieses Problem finden Sie unter dem ersten Link in der Liste unten.