Siirry pääsisältöön

Päivitys versioon 25.00

Avaa ChatGPT:ssä

Tämä dokumentaatio toimii oppaana webforJ-sovellusten päivittämiseksi versiosta 24.00 versioon 25.00. Tässä ovat vaatimukset olemassa oleville sovelluksille, jotta ne voivat jatkaa sujuvaa toimintaa. Kuten aina, katso GitHubin julkaisu-yhteenveto saadaksesi kattavamman listan muutoksista versioiden välillä.

Jetty 12 web-palvelimet​

webforJ 25.00 ja korkeammat versiot käyttävät Jetty 12:ta, joka perustuu Jakarta EE10 servlet-arkkitehtuuriin. Jos käytät Jetty Maven -lisäosaa kehityksessä, siirry Jakarta EE8:sta Jakarta EE10:een. Tämä päivitys vaatii myös kaiken, mikä tuki javax.servlet-pakettia, korvaamisen 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-menetelmiä on poistettu versiossa 25.00. Seuraavat osiot kuvaavat, mitä menetelmiä on korvattu ja suositellut korvaukset.

Konsolilokitus​

Apuluokka BrowserConsole, joka on omistettu tyylikkäiden lokien luomiseen selainkonsoliin, korvasi consoleLog() ja consoleError() -menetelmät. Hanki BrowserConsole käyttämällä console()-menetelmää:

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-luokassa oli menetelmät getLocalStorage(), getSessionStorage(), ja getCookieStorage() saadakseen instanssit LocalStorage, SessionStorage ja CookieStorage -luokista. Tulevaisuudessa jokaisella luokalla on getCurrent()-menetelmä.

Katso Web Tallennus lisätietoja varten.

Request-luokka​

Request-luokka on nyt vastuussa sovelluksen URL-osoitteen, portin, hostin ja protokollan hankkimisesta. Joten käyttäessäsi App.getUrl(), käytä App.getCurrent().getUrl(). getCurrent()-menetelmä korvasi myös getRequest()-menetelmän saadakseen instanssin Request-luokasta.

tiedot

Request-luokassa on myös poistettuja metodeja, siirry Request nähdäksesi ne.

Page-luokka​

getPage()-menetelmä on korvattu Page.getCurrent()-menetelmällä saadakseen nykyinen sivu.

Valinta-dialiit​

Sen sijaan, että käyttäisit msgbox()-menetelmää, käytä OptionDialog.showMessageDialog() luodaksesi viestidialoja.

Sovelluksen lopetus​

cleanup()-menetelmä on poistettu. Nyt on kaksi menetelmää lopetuksille, onWillTerminate() ja onDidTerminate().

Katso Hooks for termination lisätietoja varten.

Taulukon lajittelu​

webforJ 25.00 ja korkeammat versiot käyttävät oletuksena yhden sarakkeen lajittelua taulukoissa. Sarakkeet lajitellaan vain viimeksi valitun sarakeotsikon mukaan. Jotta taulukko käyttäisi monisarakkeista lajittelua, kutsu setMultiSorting() -menetelmää:

table.setMultiSorting(true);

Piilotettu TabbedPane-keho​

hideBody()-menetelmä on korvattu setBodyHidden()-menetelmällä, jotta menetelmien nimikäytännöt pysyvät johdonmukaisina.

HTML:n renderöinti komponenteissa​

webforJ 25.00 ja korkeammat versiot sisältävät setHtml()-menetelmän, joka auttaa erottamaan komponentin sisällä asetettavan kirjaimellisen ja HTML-tekstin. HTML:n asettaminen setText()-menetelmällä on edelleen mahdollista, mutta nyt se vaatii erikseen <html>-tageihin kääretyn tekstin.

// Kelvolliset käytöt setText() ja setHtml()
Button home = new Button();

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

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

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

HTML-kontit​

com.webforj.component.htmlcontainer-pakettia ei enää ole webforJ:ssä. Käytä sen sijaan monipuolisempaa com.webforj.component.element-pakettia. Lista webforJ-luokista standardeille HTML-Elementeille löytyy HTML Element Components.

Request muutokset​

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

  • getQueryParam()-menetelmä on nyt getQueryParameter().

WebforjBBjBridge muutokset​

WebforjBBjBridge-instanssin hankkiminen​

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

ConfirmDialog komponentin käyttäminen msgbox()-menetelmälle​

Aikaisemmissa webforJ-versioissa käytettiin suoraan merkkijonoja ja kokonaislukuja WebforjBBjBridge- msgbox()-menetelmälle. Kuitenkin viestit WebforjBBjBridge-sovelluksessa webforJ 25.00 ja korkeammissa versioissa käyttävät ConfirmDialog komponenttia. Tämä antaa enemmän hallintaa siitä, mitkä painikkeet näytetään ja millaista viestiä 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 kirjoitusvirheen korjaus​

Enum-luokka PasswordMediation, jota käytetään osoittamaan, vaaditaanko käyttäjältä kirjautuminen joka käynnistyksellä sovelluksessa, jossa on Login-komponentti, sisältää kirjoitusvirheen aiemmissa webforJ-versioissa. SILENT korvasi kirjoitusvirheen SILIENT webforJ 25.00 ja korkeammissa versioissa.

Itsestään keskittymisen menetelmät​

WebforJ:n johdonmukaisuuden säilyttämiseksi menetelmät kuten setAutofocus() ja isAutofocus() saavat nyt yhdenmukaisen päättämisen kuten HasAutoFocus -rajapinta. Joten komponentit kuten Dialog ja Drawer käyttävät setAutoFocus() ja isAutoFocus() versioissa 25.00 ja korkeammissa.

BBjWindowAdapter ja Panel merkitty final​

BBjWindowAdapter ja Panel -luokat on nyt merkitty final, mikä tarkoittaa, etteivät niitä voi enää periyttää. Tämä muutos parantaa vakautta ja vahvistaa johdonmukaisia käyttökaavoja.

Jatka oppimista