Siirry pääsisältöön

Upgrade to 25.00

Avaa ChatGPT:ssä

Tämä dokumentaatio toimii oppaana webforJ-sovellusten päivittämiseksi versiosta 24.00 versioon 25.00. Tässä ovat tarvittavat muutokset, jotta olemassa olevat sovellukset voivat toimia sujuvasti. Kuten aina, katso GitHub julkaisun yhteenveto saadaksesi kattavamman listan muutoksista julkaisujen välillä.

Jetty 12 web-palvelimet

webforJ 25.00 ja uudemmat versiot hyödyntävät Jetty 12:ta, joka käyttää Jakarta EE10 servlet-arkkitehtuuria. Jos käytät Jetty Maven -pluginia kehityksessä, siirry Jakarta EE8:sta Jakarta EE10:een. Tämä päivitys vaatii myös kaikki javax.servlet-pakettiin perustuvat asiat korvattavaksi Jakarta.servlet -paketilla.

POM-tiedoston muutokset

Ennen

<plugin>
<groupId>org.eclipse.jetty.ee8</groupId>
<artifactId>jetty-ee8-maven-plugin</artifactId>
<version>10.x.xx</version>

Jälkeen

<plugin>
<groupId>org.eclipse.jetty.ee10</groupId>
<artifactId>jetty-ee10-maven-plugin</artifactId>
<version>12.x.xx</version>

API-muutokset App-luokassa

Useita vanhentuneita App-metodeja on poistettu versiossa 25.00. Seuraavat osiot ohjaavat, mitkä metodit on korvattu ja mitkä korvaukset suositellaan.

Konsolilokitus

Apuluokka BrowserConsole, joka on omistettu tyyliteltyjen lokien luomiseen selainkonsoliin, korvasi consoleLog() ja consoleError() -metodit. Hanki BrowserConsole käyttämällä console()-metodia:

public class Application extends App{

@Override
public void run() throws WebforjException {
console().log("Lokiviesti");
console().error("Virheviesti");
}
}

Web-tallennus

Versioissa ennen webforJ 25.00 App-luokalla on metodit getLocalStorage(), getSessionStorage() ja getCookieStorage(), joilla voi saada instansseja LocalStorage, SessionStorage ja CookieStorage -luokista. Jatkossa jokaisella luokalla on getCurrent()-metodi.

Katso Web Storage saadaksesi lisätietoja.

Request-luokka

Request-luokka on nyt vastuussa sovelluksen URL-osoitteen, portin, isäntänimen ja protokollan hakemisesta. Joten käytä App.getCurrent().getUrl() sen sijaan, että käyttäisit App.getUrl(). getCurrent()-metodi korvasi myös getRequest()-metodin Request-luokan instanssin saamista varten.

tiedot

Request-luokalta on myös poistettu metodeja, hyppää Request nähdäksesi ne.

Page-luokka

getPage()-metodi on korvattu Page.getCurrent()-metodilla, jolla saadaan nykyisen sivun instanssi.

Valikkodialogit

Käytä OptionDialog.showMessageDialog() luodaksesi viestidialogeja sen sijaan, että käyttäisit msgbox()-metodia.

Sovelluksen päättäminen

cleanup()-metodia on poistettu. Nyt on kaksi metodia päättämiseen: onWillTerminate() ja onDidTerminate().

Katso Hooks for termination saadaksesi lisätietoja.

Taulukoiden lajittelu

webforJ 25.00 ja uudemmat versiot käyttävät oletuksena yksittäis-sarakelajittelua. Sarakkeet lajitellaan vain viimeksi valitun sarakeotsikon mukaan. Jos haluat taulukon käyttävän monisarakkeista lajittelua, kutsu setMultiSorting() -metodia:

table.setMultiSorting(true);

Piilotettu TabbedPane-runko

hideBody()-metodi on korvattu setBodyHidden()-metodilla, jotta metodien nimivihjesäännöt pysyvät johdonmukaisina.

HTML:n renderöinti komponenttien sisällä

webforJ 25.00 ja uudemmat versiot sisältävät setHtml()-metodin, joka auttaa erottamaan, milloin asetetaan kirjaimellista ja milloin HTML-tekstiä komponenttiin. HTML:n asettaminen setText()-metodilla on edelleen mahdollista, mutta se vaatii nyt, että se on nimenomaan kääritty <html>-tageihin.

// Validoitu käyttö setText() ja setHtml() -metodeista
Button home = new Button();

home.setText("""
<html>
<h1>Etusivu</h1>
</html>
""");

home.setHtml("<h1>Etusivu</h1>");

home.setText("Etusivu");
// Epävalidit käytöt setText() ja setHtml()
Button home = new Button();
home.setText("<h1>Etusivu</h1>");

HTML-kontit

com.webforj.component.htmlcontainer -paketti ei ole enää käytössä webforJ:ssä. Käytä sen sijaan monipuolisempaa com.webforj.component.element -pakettia. Saadaksesi luettelon webforJ-luokista standardille HTML-elementille, siirry HTML Element Components.

Request-muutokset

  • Aivan kuten getCookieStorage()-metodin poistaminen App-luokasta, Request-luokalla ei enää ole getCookie() -metodia. Tämä vahvistaa käytön CookieStorgage.getCurrent() saadaksesi instanssin CookieStorage -luokasta.

  • getQueryParam()-metodin nimi on nyt getQueryParameter().

WebforjBBjBridge-muutokset

Instanssin saaminen WebforjBBjBridge

Environment-luokalla ei enää ole getWebforjHelper() -metodia, joten käytä getBridge() sen sijaan.

ConfirmDialog-komponentin käyttö msgbox()-metodin sijasta

WebforJ:n aikaisemmissa versioissa käytettiin suoraan merkkijonoja ja kokonaislukuja WebforjBBjBridge msgbox()-metodissa. Kuitenkin, webforJ 25.00 ja uudemmat versiot käyttävät ConfirmDialog komponenttia WebforjBBjBridge:lla. Tämä antaa enemmän hallintaa siitä, mitä painikkeita näytetään ja minkä tyyppisiä viestejä käytetään.

Ennen

Environment environment = Environment.getCurrent();
WebforjBBjBridge bridge = environment.getWebforjHelper();

int msgboxResult = bridge.msgbox("Oletko varma, että haluat poistaa tämän tiedoston?", 1, "Poisto");

Jälkeen

Environment environment = Environment.getCurrent();
WebforjBBjBridge bridge = environment.getBridge();

ConfirmDialog dialog = new ConfirmDialog(
"Oletko varma, että haluat poistaa tämän tiedoston?", "Poisto",
ConfirmDialog.OptionType.OK_CANCEL, ConfirmDialog.MessageType.QUESTION);

int msgboxResult = bridge.msgbox(dialog);

PasswordMediation-typo korjaus

Enum-luokassa PasswordMediation, jota käytetään ilmoittamaan, tarvitseeko käyttäjän kirjautua sisään joka vierailulla sovelluksessa, jossa on Login-komponentti, on aikaisemmissa webforJ-versioissa kirjoitusvirhe. SILENT korvasi virheellisen SILIENT webforJ 25.00 ja uudemmissa versioissa.

Automaattinen fokusointi

Käyttääkseen webforJ:ta johdonmukaisesti, kuten setAutofocus() ja isAutofocus() -metodit, nyt on yksittäinen päättely kuten HasAutoFocus-rajapinta. Joten komponentit kuten Dialog ja Drawer käyttävät setAutoFocus() ja isAutoFocus() versiossa 25.00 ja uudemmissa.

BBjWindowAdapter ja Panel merkitty final

BBjWindowAdapter ja Panel-luokat on nyt määritelty final, mikä tarkoittaa, että niitä ei voi enää aliluokitella. Tämä muutos parantaa vakautta ja vahvistaa johdonmukaisia käyttökuvioita.