Siirry pääsisältöön

Object and String Tables

Avaa ChatGPT:ssä

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.

varoitus

SessionObjectTable:ssä tallennettujen objektien tulee toteuttaa Serializable tukeakseen istuntojen pysyvyyttä, replikoitumista ja passivointia servlet-säiliöissä.

Saatavuus BBjServices:ssa

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