Wicket CompoundPropertyModel-Beispiel

Wicket CompoundPropertyModel-Beispiel

In Wicket ähnelt "CompoundPropertyModel" "http://www.example.com/wicket/wicket-propertymodel-example/[PropertyModel]" und ist das am häufigsten verwendete Modell zum Binden von Formularkomponenten an Objekte Eigentum.

Note
Für Details lesen Sie dieseCompoundPropertyModel article

Das folgende Beispiel zeigt, wie Sie CompoundPropertyModel in Wicket verwenden.

1. Benutzerklasse

Eine Benutzerklasse mit zwei Eigenschaften - "Name" und "Alter".

package com.example.user;

import java.io.Serializable;

public class User implements Serializable{

    private String name;
    private int age;

    //setter and getter methods

}

2. CompoundPropertyModel-Beispiel

Verwendet "CompoundPropertyModel", um Textfeldkomponenten an das Objekt "user" zu binden.

package com.example.user;

import org.apache.wicket.PageParameters;
import org.apache.wicket.markup.html.form.Form;
import org.apache.wicket.markup.html.form.TextField;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.apache.wicket.markup.html.WebPage;
import org.apache.wicket.model.CompoundPropertyModel;

public class UserPage extends WebPage {

    private User user = new User();

    @SuppressWarnings("serial")
    public UserPage(final PageParameters parameters) {

        add(new FeedbackPanel("feedback"));

        final TextField tName = new TextField("name");
        final TextField tAge = new TextField("age");

        Form form = new Form("userForm",
                                                     new CompoundPropertyModel(user)) {

            @Override
            protected void onSubmit() {

                PageParameters pageParameters = new PageParameters();
                pageParameters.add("name", user.getName());
                pageParameters.add("age", Integer.toString(user.getAge()));
                setResponsePage(SuccessPage.class, pageParameters);

            }

        };

        add(form);
        form.add(tName);
        form.add(tAge);

    }
}

In diesem Fall,

  1. new TextField(“name”) wird an das Benutzerobjektname property gebunden

  2. new TextField(“age”) binden an Benutzerobjekt,age property

Laden Sie es herunter -Wicket-CompoundPropertyModel-Examples.zip (8 KB)