Upgraden naar 25.00
Deze documentatie dient als gids voor het upgraden van webforJ-apps van 24.00 naar 25.00. Hier zijn de wijzigingen die nodig zijn voor bestaande apps om soepel te blijven draaien. Zoals altijd, zie de GitHub release-overzicht voor een meer uitgebreide lijst van wijzigingen tussen releases.
Jetty 12 webservers
webforJ 25.00 en hoger maakt gebruik van Jetty 12, met de Jakarta EE10 servlet-architectuur. Als je de Jetty Maven-plugin voor ontwikkeling gebruikt, migreer dan van Jakarta EE8 naar Jakarta EE10. Deze upgrade vereist ook dat je alles vervangt dat afhankelijk was van het javax.servlet-pakket door het Jakarta.servlet-pakket.
POM-bestand wijzigingen
Voor
<plugin>
<groupId>org.eclipse.jetty.ee8</groupId>
<artifactId>jetty-ee8-maven-plugin</artifactId>
<version>10.x.xx</version>
Na
<plugin>
<groupId>org.eclipse.jetty.ee10</groupId>
<artifactId>jetty-ee10-maven-plugin</artifactId>
<version>12.x.xx</version>
API-wijzigingen voor de App-klasse
Verschillende verouderde App-methoden zijn verwijderd in 25.00. De volgende secties schetsen welke methoden zijn vervangen en de aanbevolen vervangingen.
Console logging
De utilityklasse BrowserConsole, die is gewijd aan het creëren van gestyleerde logs naar de browserconsole, vervangt de consoleLog() en consoleError()-methoden. Verkrijg de BrowserConsole door gebruik te maken van de console()-methode:
public class Application extends App{
@Override
public void run() throws WebforjException {
console().log("Logbericht");
console().error("Foutbericht");
}
}
Webopslag
Voor versies voor webforJ 25.00 heeft de App-klasse de methoden getLocalStorage(), getSessionStorage() en getCookieStorage() om instanties van de LocalStorage, SessionStorage en CookieStorage klassen te verkrijgen. Voortaan heeft elke klasse een getCurrent()-methode.
Zie Webopslag voor meer informatie.
Request-klasse
De Request-klasse is nu verantwoordelijk voor het verkrijgen van de URL, poort, host en protocol van een app. Dus in plaats van App.getUrl() te gebruiken, gebruik App.getCurrent().getUrl(). De getCurrent()-methode vervangt ook de getRequest()-methode om een instantie van de Request-klasse te verkrijgen.
De Request-klasse heeft ook verwijderde methoden, ga naar Request om ze te zien.
Page-klasse
De getPage()-methode is vervangen door Page.getCurrent() om de huidige pagina-instantie te verkrijgen.
Keuzedialogen
In plaats van de msgbox()-methode te gebruiken, gebruik OptionDialog.showMessageDialog() om berichtendialogen te creëren.
App-beëindiging
De cleanup()-methode is verwijderd. Er zijn nu twee methoden voor beëindigingen, onWillTerminate() en onDidTerminate().
Zie Hooks voor beëindiging voor meer informatie.
Tabelsortering
Voor webforJ 25.00 en hoger gebruiken tabellen standaard sortering op één kolom. Kolommen worden alleen gesorteerd op de meest recent geselecteerde kolomkop. Om een tabel meerdere kolomsortering te laten gebruiken, roep de setMultiSorting() methode aan:
table.setMultiSorting(true);
Verborgen TabbedPane-body
De hideBody()-methode is vervangen door setBodyHidden() om een consistente naamgevingsconventie voor methoden te behouden.
HTML renderen binnen componenten
In webforJ 25.00 en hoger is er een setHtml()-methode om onderscheid te maken tussen het instellen van letterlijke en HTML-tekst binnen een component. HTML instellen met de setText()-methode is nog steeds mogelijk, maar vereist nu expliciet dat het wordt omgeven met <html>-tags.
// Geldige gebruiken van setText() en setHtml()
Button home = new Button();
home.setText("""
<html>
<h1>Home</h1>
</html>
""");
home.setHtml("<h1>Home</h1>");
home.setText("Home");
// Ongeldige gebruiken van setText() en setHtml()
Button home = new Button();
home.setText("<h1>Home</h1>");
HTML-containers
Het com.webforj.component.htmlcontainer-pakket is niet langer aanwezig in webforJ. Gebruik in plaats daarvan het meer uitgebreide com.webforj.component.element-pakket. Voor een lijst van webforJ-klassen voor standaard HTML-elementen, ga naar HTML Element Componenten.
Request wijzigingen
-
Net als de verwijdering van de
getCookieStorage()-methode voor deApp-klasse, heeftRequestniet langer degetCookie()-methode. Dit versterkt het gebruik vanCookieStorgage.getCurrent()om een instantie van deCookieStorage-klasse te verkrijgen. -
De
getQueryParam()-methode is nugetQueryParameter().
WebforjBBjBridge wijzigingen
Het verkrijgen van een instantie van WebforjBBjBridge
De Environment-klasse heeft niet langer de getWebforjHelper()-methode, dus gebruik in plaats daarvan getBridge().
De ConfirmDialog-component gebruiken voor de msgbox()-methode
Eerdere versies van webforJ gebruikten direct strings en gehele getallen voor de WebforjBBjBridge msgbox()-methode. Echter, berichten voor WebforjBBjBridge in webforJ 25.00 en hoger gebruiken de ConfirmDialog component. Dit biedt meer controle over welke knoppen worden weergegeven en het berichttype.
Voor
Environment environment = Environment.getCurrent();
WebforjBBjBridge bridge = environment.getWebforjHelper();
int msgboxResult = bridge.msgbox("Weet je zeker dat je dit bestand wilt verwijderen?", 1, "Verwijdering");
Na
Environment environment = Environment.getCurrent();
WebforjBBjBridge bridge = environment.getBridge();
ConfirmDialog dialog = new ConfirmDialog(
"Weet je zeker dat je dit bestand wilt verwijderen?", "Verwijdering",
ConfirmDialog.OptionType.OK_CANCEL, ConfirmDialog.MessageType.QUESTION);
int msgboxResult = bridge.msgbox(dialog);