2016-07-22 18 views
1

Ich verfolge dieses TutorialWie erhalten Sie die Werte von mehreren Dynaformen?

http://www.primefaces.org/showcase-ext/sections/dynaform/basicUsage.jsf

ich in der Lage gewesen Baum Dynaform Objekte zu erstellen und an die Seite zu senden. Aber es fällt mir schwer, die Werte zu erhalten, die der Benutzer eingegeben hat, als er auf "Senden" geklickt hat. Ich möchte in der Lage sein, diese Werte in der Backbean zu bekommen. Hier

ist Submit-Button

<p:commandButton value="Submit" action="#{dynaFormController.submitForm}" 
          process="dynaForm" update=":mainForm:dynaFormGroup :mainForm:inputValues" 
          oncomplete="handleComplete(xhr, status, args)"/> 
<p:commandButton type="reset" value="Reset" style="margin-left: 5px;"/> 

Ich kenne die einreichen Anrufe diese Funktion

<h:outputScript id="dynaFormScript" target="body"> 
/* <![CDATA[ */ 
    function handleComplete(xhr, status, args) { 
     if(args && args.isValid) { 
      PF('inputValuesWidget').show(); 
     } else { 
      PF('inputValuesWidget').hide(); 
     } 
    } 
/* ]]> */ 
</h:outputScript> 

Dann in der Bohne haben wir:

public String submitForm() { 
     FacesMessage.Severity sev = FacesContext.getCurrentInstance().getMaximumSeverity(); 
     boolean hasErrors = (sev != null && (FacesMessage.SEVERITY_ERROR.compareTo(sev) >= 0)); 

     RequestContext requestContext = RequestContext.getCurrentInstance(); 
     requestContext.addCallbackParam("isValid", !hasErrors); 

     return null; 
    } 

Wie würde ich in der Lage sein zu bekommen entweder die Felder Werte aus dem übermittelten Formular? Ich habe 3 Dynaforms, die ich ihnen unterbreiten möchte und in der Lage sein, die Werte in der Back Bean zu bekommen. Kann mir jemand erklären? Ich habe versucht, einige Tutorials nachzuschlagen, aber ich habe keine Erklärung gefunden.

Danke.

Antwort

0

Es ist das gleiche wie einfach JSF.

Sie benötigen eine Variable in Ihrer Bean, ihre Getter und Setter. Dann vergleichen Sie es mit dem DynaFormControl.

@ManagedBean 
@SessionScoped 
public class DynaFormController implements Serializable { 

private static final long serialVersionUID = 1L; 
private DynaFormModel model; 
private BookProperty bookProperty; 

public String getBookProperty() { 
    return bookProperty; 
} 
public void setBookProperty(BookProperty bookProperty) { 
    this.bookProperty = bookProperty; 
} 

public String submitForm() { 
    //your code 

    List<DynaFormControl> controls = model.getControls(); 
    for (DynaFormControl control : controls) { 
     if(control.getData() instanceof BookProperty) { 
      BookProperty bp = (BookProperty) c.getData(); 
      //use the object     
     } 
    }  

    return null; 
} 

}