2017-06-20 4 views
0

ich bin neuling in jsf web app, ich erstelle eine jsf-seite mit einem commandButton, aber es wird nicht funktionieren Ich weiß nicht warum? Ich gebe Actionlistener, nach Aktion, aber es wird nicht funktionieren, also bitte helfen Sie mir?p: commandButton funktioniert nicht oder nicht

HTML-Code

<p:panelGrid columns="2" id="display" columnClasses="label,value"> 

      <h:outputText value="Mobile Number" /> 
      <p:inputMask id="phoneWithExt" value="#{GenerateOtp.EVD}" mask="(999) 999-9999" maxlength="10"/> 

      <h:outputText value="Mpin" /> 
      <p:inputMask id="mpin" value="#{GenerateOtp.MPin}" mask="9-9-9-9" maxlength="4"/> 

      <h:outputText value="Imei Number" /> 
      <p:inputText id="imei" alt="Imei Number" value="#{GenerateOtp.IMEI}"/> 

      <h:outputText value="User Agent" /> 
      <p:inputText id="useragent" alt="User Agent" value="#{GenerateOtp.useragent}"/> 

     </p:panelGrid> 

     <p:commandButton id="call" type="button" value="Call" 
         actionListener="#{GenerateOtp.buttonAction(actionEvent)}" 
         process="@this" 
         icon="ui-icon-check" /> 

Managed Bean:

@ManagedBean(name = "GenerateOtp") 
@ViewScoped 
public class GenerateOtp extends MasterRequest { 

@SerializedName("EVD") 
@Expose 
private String eVD; 
@SerializedName("mPin") 
@Expose 
private String mPin; 

public String getEVD() { 
    return eVD; 
} 

public void setEVD(String eVD) { 
    this.eVD = eVD; 
} 

public String getMPin() { 
    return mPin; 
} 

public void setMPin(String mPin) { 
    this.mPin = mPin; 
} 

public void callOtp() { 
    System.out.println("evd" + getEVD()); 
} 

public void buttonAction(ActionEvent actionEvent) { 
    addMessage("evd" + getEVD()); 
} 

public void addMessage(String summary) { 
    FacesMessage message = new FacesMessage(FacesMessage.SEVERITY_INFO, summary, null); 
    FacesContext.getCurrentInstance().addMessage(null, message); 
} 

} 
+0

Wo ist Ihr Formular? – BrunoDM

+2

Mögliches Duplikat von [commandButton/commandLink/ajax action/Listener-Methode nicht aufgerufen oder Eingabewert nicht aktualisiert] (https://stackoverflow.com/questions/2118656/commandbutton-commandlink-ajax-action-listener-method-not-invoked -oder-Eingabe-Wert) – Kukeltje

Antwort

1

Die Action funktioniert nicht für eine type = "button" command. Sie müssen also den type = "button" entfernen.

Der Typ, den Sie benötigen, ist "submit", aber da es der Standardtyp ist, müssen Sie es nicht deklarieren.

<p:commandButton id="call" value="Call" 
    actionListener="# GenerateOtp.buttonAction(actionEvent)}" 
    process="@this" icon="ui-icon-check" /> 

Wenn Sie es so ändern, wird der Button funktioniert, wenn der Rest des Codes korrekt ist (eq als BrunoDM sagte ein Formular benötigen, wenn Sie immer noch nicht funktionieren wird nicht ein auf die Schaltfläche haben)

+3

Diese Information ist alles in dem Duplikat, auf das ich Bezug genommen habe. Also bitte als solches markieren. Dies verhindert Fragmentierung und viele ähnliche Q/A in Stackoverflow. Ich weiß, dass dies (leider) dir keine "Repulsion" -Punkte geben wird, aber es ist "gute Praxis" in Stackoverflow. Danke – Kukeltje

+0

Oh Entschuldigung habe nicht auf Ihren doppelten Thread geschaut. Ich habe gerade den Fehler gesehen und wollte helfen. Ich habe die Frage jetzt angezeigt. Um ehrlich zu sein, ist mir der Ruf egal, ich möchte nur den Leuten helfen :) – lastresort

+0

Cooler Dank dafür, dass du es mit so viel Sportsgeist genommen hast. Gleiches gilt für mich. Prost! Aber Sie sollten die Schaltfläche "Schließen" wählen und dann "Duplizieren". Nur das "Upvoting" meines (automatisch generierten) Kommentars reicht nicht aus. – Kukeltje

Verwandte Themen