2017-04-01 2 views
0

Dies ist mein UI-Code in JSF. Die App ist eine kleine Währungsumrechnung vom Singapur-Dollar zum Japanischen Yen.UI aktualisiert die Backing-Bean nicht

<h:form> 
      <h:inputText id="conversion" value="#{conversor.sgd}"></h:inputText> 
     <h:commandButton value = "Convertir a yen"> 
      <f:ajax execute = "@all" render = "conversion_lista" event="click"/> 
     </h:commandButton> 
     <h2><h:outputText id = "conversion_lista" value = "Conversion: #{conversor.jpy}"/></h2> 
     </h:form> 

Und das ist mein Backing Bean:

@Named("conversor") 
@Dependent 
public class Conversor { 

    private int sgd; 

    public Conversor() { 
     sgd = 1; //initial value 
    } 

    public int getSgd(){ 
     return sgd;   
    }  

    public void setSgd(int sgd){ 
     this.sgd = sgd; 
    } 

    public int getJpy(){ 
     return sgd * 2; //fake 
    } 
} 

ich auf dem Befehl klicken mag, führen Sie den ersten input, machen die sgd Eigenschaft in dem Backing Bean ändern, dann machen den output von zuvor Berechnung der Umrechnung von Singapur-Dollar in Japanischen Yen.

Die Eingabe wird jedoch nicht an die Backing-Bean übergeben.

Ich habe versucht, einige Dinge wie, machen getJpy() geben Sie eine zufällige Zahl jedes Mal, wenn es aufgerufen wird, und es hat eine zufällige Zahl jedes Mal, wenn ich auf die Schaltfläche geklickt. Das heißt also, dass Call funktioniert. Aber ich kann die Texteingabe (sgd/singaporean dollar) nicht an die Backing Bean übergeben und die richtige Konvertierung vornehmen.

Was geht hier vor?

Antwort

0

Ok, ich habe es behoben.

Ich verwendete @RequestScoped anstelle von @Dependent.

Ich habe keine Ahnung, was ich mache, aber es funktioniert.

Jetzt ist das Ergebnis, was ich wollte, die Konvertierung erfolgt auf der Benutzeroberfläche, wenn ich auf die Schaltfläche klicke.

+0

_ "Ich habe keine Ahnung, was ich mache, aber es funktioniert." _ Dann beginnen Sie mit dem Lesen einiger guter Grundlehrgänge – Kukeltje

Verwandte Themen