Upgrade to 25.00
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.
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 poistaminenApp
-luokasta,Request
-luokalla ei enää olegetCookie()
-metodia. Tämä vahvistaa käytönCookieStorgage.getCurrent()
saadaksesi instanssinCookieStorage
-luokasta. -
getQueryParam()
-metodin nimi on nytgetQueryParameter()
.
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.