Data Binding
webforJ sisältää tiedonsidontatoiminnon, joka integroi UI-komponentit saumattomasti taustadatamalleihin Java-sovelluksissa. Tämä ominaisuus ylittää rajan UI:n ja datakerroksen välillä, varmistaen, että muutokset UI:ssa heijastuvat datamalliin ja päinvastoin. Tuloksena paranee käyttäjäkokemus ja vähenee tapahtumankäsittelyn ja datan synkronoinnin monimutkaisuus.
Käsite
Seuraava esittely näyttää yksinkertaisen webforJ-sovelluksen, joka rekisteröi supersankareita käyttäen webforJ:n tiedonsidontatoimintoa. Sovellus koostuu kahdesta pääosasta: HeroRegistration.java
ja Hero.java
.
Tiedostossa HeroRegistration.java
koodi konfiguroi käyttöliittymän TextField
:llä sankarin nimen syöttämistä varten, ComboBox
:illa supervoiman valitsemista varten ja Button
:illa rekisteröinnin lähettämistä varten.
Hero
-luokka määrittelee datamallin validointirajoituksilla sankarin nimen ja voiman osalta, varmistaen, että syötteet ovat voimassa ja noudattavat määrättyjä kriteerejä, kuten pituus ja malli.
Sovellus käyttää BindingContext
-luokkaa sitomaan UI-komponentit Hero
-olion ominaisuuksiin. Kun käyttäjä napsauttaa lähetyspainiketta, sovellus kirjoittaa lomakkeessa syötetyt tiedot taaksepäin Hero
-bean:iin, jos ne ovat voimassa.
- HeroRegistration.java
- Hero.java
public class HeroRegistration extends App {
private TextField name = new TextField("Tekstikenttä");
private ComboBox power = new ComboBox("Voima");
private Button submit = new Button("Rekisteröi hakemus");
private FlexLayout layout = FlexLayout.create(name, power, submit).vertical().build()
.setStyle("margin", "20px auto").setMaxWidth("400px");
@Override
public void run() throws WebforjException {
power.insert("Lentää", "Näkymätön", "Lasersilmä", "Nopeus", "Siirtyminen");
BindingContext<Hero> context = BindingContext.of(this, Hero.class, true);
Hero bean = new Hero("Superman", "Lentää");
// heijasta bean-data lomakkeeseen
context.read(bean);
submit.onClick(e -> {
// kirjoita lomakedata takaisin beaniin
ValidationResult results = context.write(bean);
if (results.isValid()) {
// tee jotain beanin kanssa
// repository.persist(bean)
}
});
Frame frame = new Frame();
frame.add(layout);
}
}
public class Hero {
@NotEmpty(message = "Nimi ei voi olla tyhjää")
@Length(min = 3, max = 20)
private String name;
@NotEmpty(message = "Määrittelemätön voima")
@Pattern(regexp = "Lentää|Näkymätön|Lasersilmä|Nopeus|Siirtyminen", message = "Virheellinen voima")
private String power;
public Hero(String name, String power) {
this.name = name;
this.power = power;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPower() {
return power;
}
public void setPower(String power) {
this.power = power;
}
public String toString() {
return "Nimi: " + name + ", Voima: " + power;
}
}
Avainominaisuudet
-
Kaksisuuntainen sidonta: Tukee kaksisuuntaista tiedonsidontaa, jolloin muutokset datamallissa päivittävät UI:ta ja käyttäjäinteraktiot UI:ssa päivittävät datamallia.
-
Validointituki: Integroi kattavat validointimekanismit, joita voit mukauttaa ja laajentaa. Kehittäjät voivat toteuttaa omia validointisääntöjään tai käyttää olemassa olevia validointikehyksiä, kuten Jakarta Validation, varmistaakseen datan eheyden ennen mallin päivittämistä.
-
Laajennettavuus: Voidaan helposti laajentaa tukemaan erilaisia UI-komponentteja, datamuunnoksia ja monimutkaisia validointiskenaarioita.
-
Annotaatio-ohjattu konfigurointi: Hyödyntää annotaatioita minimoidakseen turhakoodin, jolloin sidokset UI-komponenttien ja datamallien välillä ovat deklaratiivisia ja helppoja hallita.
Aiheet
📄️ Bindings
A binding in webforJ linkittää tietyn Java Bean -ominaisuuden UI-komponenttiin. Tämä linkitys mahdollistaa automaattiset päivitykset UI:n ja taustamallin välillä. Jokainen binding voi käsitellä datan synkronointia, validointia, muunnosta ja tapahtumien hallintaa.
🗃️ Vahvista
5 tuotetta
📄️ Transformation
Data transformations ovat keskeinen ominaisuus, joka mahdollistaa sujuvan muuntamisen käyttöliittymäkomponenttien ja datamallisi käyttämien tietotyyppien välillä. Tämä ominaisuus varmistaa, että tietotyypit ovat yhteensopivia ja kunnolla muotoiltuja, kun siirrät tietoja sovellustesi etu- ja takapään välillä.
📄️ Automatic Binding
webforJ tarjoaa useita ominaisuuksia, jotka tehostavat konfigurointia ja automaattista sitoutumisprosessia kehittäjille. Tämä osa osoittaa, miten näitä ominaisuuksia voidaan käyttää tehokkaasti.