Object and String Tables
ObjectTable
, SessionObjectTable
ja StringTable
tarjoavat staattisen pääsyn jaettuun dataan webforJ-ympäristössä. Kaikki ovat käytettävissä mistä tahansa sovelluksessasi ja palvelevat eri tarkoituksia:
ObjectTable
: Java-olioiden tallentamiseen ja hakemiseen koko sovelluksessa.SessionObjectTable
: Java-olioiden tallentamiseen ja hakemiseen HTTP-istuntotason kontekstissa.StringTable
: Pysyvien avain-arvo-merkkijonoparien työskentelyyn, joita käytetään usein konfiguraatio- tai ympäristötietona.
Nämä taulukot ovat saatavilla ympäristötasolla eivätkä vaadi instanssien hallintaa.
ObjectTable
ObjectTable
on globaalisti saatavissa oleva avain-arvo-kartta minkä tahansa Java-olion tallentamiseen. Se tarjoaa yksinkertaisen pääsyn jaettuun tilaan ilman, että mitään tarvitsisi instansioida tai konfiguroida. ObjectTable
:llä on vain yksi instanssi, ja se tyhjennetään, kun sovellus päivitetään tai lopetetaan. Se on hyödyllinen skenaarioissa, joissa tarvitset tietojen saatavuutta useiden komponenttien tai kontekstien välillä ilman viittausketjun ylläpitämistä.
Olioiden asettaminen ja hakeminen
ObjectTable.put("userInfo", new User("Alice", "admin"));
User user = (User) ObjectTable.get("userInfo");
Läsnäolon tarkistaminen
if (ObjectTable.contains("userInfo")) {
// Avain on olemassa
}
Merkintöjen poistaminen
ObjectTable.clear("userInfo");
Taulukon koko
int total = ObjectTable.size();
SessionObjectTable
25.03
SessionObjectTable
tarjoaa staattisen pääsyn HTTP-istuntotason attribuutteihin, kun se toimii Jakarta Servlet 6.1+ -säiliössä. Toisin kuin ObjectTable
, joka on sovellustason, SessionObjectTable
tallentaa tietoja käyttäjän HTTP-istuntoon, mikä tekee niistä pysyviä pyyntöjen välillä, mutta ainutlaatuisia jokaiselle käyttäjäistunnolle.
Se noudattaa samaa API-mallia kuin ObjectTable
johdonmukaisuuden vuoksi.
SessionObjectTable
:ssä tallennettujen objektien tulee toteuttaa Serializable
tukeakseen istuntojen pysyvyyttä, replikoitumista ja passivointia servlet-säiliöissä.
BBjServices
:ssaTätä ominaisuutta ei ole vielä saatavilla käytettäessä BBjServicesia versiolla 25.03.
Istunto-olioiden asettaminen ja hakeminen
// ShoppingCart:in tulee toteuttaa Serializable
SessionObjectTable.put("cart", new ShoppingCart());
ShoppingCart cart = (ShoppingCart) SessionObjectTable.get("cart");
Läsnäolon tarkistaminen
if (SessionObjectTable.contains("cart")) {
// Istunnolla on ostoskori
}
Istunto-merkintöjen poistaminen
SessionObjectTable.clear("cart");
Istuntotaulukon koko
int total = SessionObjectTable.size();
StringTable
StringTable
tarjoaa staattisen pääsyn globaalisiin merkkimuuttujiin. Se on pysyvä ja rajoittuu nykyiseen sovellukseen. Arvoja voidaan ohjelmallisesti muuttaa tai injektoida ympäristön konfiguraation kautta. Tämä mekanismi on erityisen hyödyllinen konfiguraatioarvojen, lippujen ja asetusten tallentamiseen, joita on oltava saatavilla koko sovelluksessa, mutta jotka eivät tarvitse kantaa monimutkaista dataa.
Merkkijonoarvojen hakeminen ja asettaminen
StringTable.put("COMPANY", "Acme Corp");
String company = StringTable.get("COMPANY");
Esikonfiguroidut arvot konfiguraatiosta
Voit määrittää avaimet webforj.conf
-tiedostossasi:
webforj.stringTable = {
COMPANY: 'Acme Corp'
}
Sitten pääset niihin koodissa:
String val = StringTable.get("COMPANY");
Läsnäolon tarkistaminen
if (StringTable.contains("COMPANY")) {
// Avain on asetettu
}
Avaimen tyhjentäminen
StringTable.clear("COMPANY");