Passer au contenu principal

Object and String Tables

Ouvrir dans ChatGPT

L'ObjectTable, le SessionObjectTable et le StringTable fournissent un accès statique aux données partagées dans un environnement webforJ. Tous sont accessibles de n'importe où dans votre application et servent des objectifs différents :

  • ObjectTable : Pour stocker et récupérer des objets Java dans toute votre application.
  • SessionObjectTable : Pour stocker et récupérer des objets Java dans le scope de session HTTP.
  • StringTable : Pour travailler avec des paires de chaînes clé-valeur persistantes, souvent utilisées pour des données de configuration ou de type environnement.

Ces tables sont disponibles au niveau de l'environnement et ne nécessitent pas de gestion d'instance.

ObjectTable

L'ObjectTable est une carte clé-valeur globalement accessible pour stocker n'importe quel objet Java. Elle fournit un accès simple à un état partagé sans avoir besoin d'instancier ou de configurer quoi que ce soit. Il n'y a qu'une seule instance d'ObjectTable et elle est effacée lorsque l'application est rafraîchie ou terminée. C'est utile dans les scénarios où vous devez rendre les données disponibles à travers plusieurs composants ou contextes sans maintenir une chaîne de référence.

Définir et récupérer des objets

ObjectTable.put("userInfo", new User("Alice", "admin"));
User user = (User) ObjectTable.get("userInfo");

Vérifier la présence

if (ObjectTable.contains("userInfo")) {
// La clé existe
}

Supprimer des entrées

ObjectTable.clear("userInfo");

Taille de la table

int total = ObjectTable.size();

SessionObjectTable 25.03

Le SessionObjectTable fournit un accès statique aux attributs de session HTTP lors de l'exécution dans un conteneur Jakarta Servlet 6.1+. Contrairement à ObjectTable qui est scoped à l'application, le SessionObjectTable stocke des données dans la session HTTP de l'utilisateur, les rendant persistantes à travers les requêtes mais uniques à chaque session utilisateur.

Il suit le même modèle d'API que ObjectTable pour la cohérence.

avertissement

Les objets stockés dans le SessionObjectTable doivent implémenter Serializable pour supporter la persistance de session, la réplication et la passivation dans les conteneurs de servlets.

Disponibilité dans BBjServices

Cette fonctionnalité n'est pas encore disponible lors de l'exécution avec BBjServices dans la version 25.03.

Définir et récupérer des objets de session

// ShoppingCart doit implémenter Serializable
SessionObjectTable.put("cart", new ShoppingCart());
ShoppingCart cart = (ShoppingCart) SessionObjectTable.get("cart");

Vérifier la présence

if (SessionObjectTable.contains("cart")) {
// La session a le panier
}

Supprimer des entrées de session

SessionObjectTable.clear("cart");

Taille de la table de session

int total = SessionObjectTable.size();

StringTable

Le StringTable fournit un accès statique aux variables de chaîne globales. Il est persistant et scoped à l'application actuelle. Les valeurs peuvent être modifiées ou injectées par programmation via la configuration de l'environnement. Ce mécanisme est particulièrement utile pour stocker des valeurs de configuration, des indicateurs et des paramètres qui doivent être accessibles à l'échelle de l'application mais qui n'ont pas besoin de transporter des données complexes.

Obtenir et définir des valeurs de chaîne

StringTable.put("COMPANY", "Acme Corp");
String company = StringTable.get("COMPANY");

Valeurs pré-configurées depuis la configuration

Vous pouvez définir des clés dans votre fichier webforj.conf :

webforj.stringTable = {
COMPANY: 'Acme Corp'
}

Puis y accéder dans le code :

String val = StringTable.get("COMPANY");

Vérifier la présence

if (StringTable.contains("COMPANY")) {
// La clé est définie
}

Effacer une clé

StringTable.clear("COMPANY");