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");