Frage

Ich habe einen Zweifel. Wie die Struts2 Modeldriven Schnittstelle funktioniert. In meiner Anwendung habe ich für eine einzige Form. Und ich platziert Getter und Setter genauso wie Formularnamen. Ist es möglich, mehrere ModelDriven Objekte mit Setter und Getter zu platzieren. Wenn ich so dann platziert, wie es erkennt?

War es hilfreich?

Lösung

Jede Aktion der ModelDriven Schnittstelle implementieren muss eine getModel() Methode liefern, die das Objekt zurückgibt, die das Modell der Aktion darstellt. Alle Parameter der Aktion übergeben werden angenommen Untereigenschaften des Modells sein. Sie können nur ein Modell in einer Modellgetriebene Aktion pro Aktion haben.

Zum Beispiel läßt vermuten, wir haben ein Modell namens Profile und eine Aktion zu bearbeiten unser Profil. In unserer Form, haben wir ein Textfeld für unsere Website. Ohne Verwendung ModelDriven, würden Sie getWebsite und setWebsite Methoden auf Ihre Wirkung haben. Mit ModelDriven würden die Getter und Setter auf dem Modell statt aufgerufen werden. Effektiv getModel().setWebsite("http://stackoverflow.com").

Beispiel:

public class EditProfileAction extends ActionSupport implements ModelDriven<Profile> {
    private Profile profile;

    // todo: other methods

    @Override
    public Profile getModel() {
        return profile;
    }
}

public class Profile {
    private String website;

    public String getWebsite() {
        return website;
    }

    public void setWebsite(String website) {
        this.website = website;
    }
}

Andere Tipps

Zustimmen ... sieht Modellgetriebene ähnlich wie Action in Struts1 und die Ähnlichkeit i diesem Ansatz glauben müssen, ist vorgesehen. Selbst dann, wenn u Ihr Modell haben, mit vielen Zusammensetzung würde u haben die ObjectBacked Ansatz zu folgen, die darin enthaltenen Objektwerte in dem Modell zu setzen.

Bei ModelDriven, können Sie nur eine pojo zu einem Zeitpunkt, füllen. Sie können nicht mehrere ModelDriven in einzelnen Action-Klasse verwenden. Da getModel() Verfahren das Objekt des Pojo bevölkern, die in ModelDrive<Pojo>.It angegeben werden versuchen, den Getter in diesem pojo zu finden. Der Name des Feldes sollte mit den Formularnamen angepasst werden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top