Object and String Tables
La ObjectTable
, SessionObjectTable
y StringTable
proporcionan acceso estático a datos compartidos en un entorno webforJ. Todos son accesibles desde cualquier parte de su aplicación y sirven diferentes propósitos:
ObjectTable
: Para almacenar y recuperar objetos Java en toda su aplicación.SessionObjectTable
: Para almacenar y recuperar objetos Java en el contexto de la sesión HTTP.StringTable
: Para trabajar con pares de cadena de clave-valor persistentes, a menudo utilizados para datos de configuración o estilo de entorno.
Estas tablas están disponibles a nivel de entorno y no requieren gestión de instancias.
ObjectTable
ObjectTable
es un mapa de clave-valor accesible globalmente para almacenar cualquier objeto Java. Proporciona acceso simple al estado compartido sin necesidad de instanciar o configurar nada. Solo hay una instancia de ObjectTable y se borra cuando la aplicación se actualiza o se finaliza. Es útil en escenarios donde necesita hacer que los datos estén disponibles en múltiples componentes o contextos sin mantener una cadena de referencia.
Configuración y recuperación de objetos
ObjectTable.put("userInfo", new User("Alice", "admin"));
User user = (User) ObjectTable.get("userInfo");
Comprobando la presencia
if (ObjectTable.contains("userInfo")) {
// La clave existe
}
Eliminando entradas
ObjectTable.clear("userInfo");
Tamaño de la tabla
int total = ObjectTable.size();
SessionObjectTable
25.03
SessionObjectTable
proporciona acceso estático a atributos de sesión HTTP cuando se ejecuta en un contenedor Jakarta Servlet 6.1+. A diferencia de ObjectTable
, que es de alcance de aplicación, SessionObjectTable
almacena datos en la sesión HTTP del usuario, haciéndolos persistentes entre solicitudes pero únicos para cada sesión de usuario.
Sigue el mismo patrón de API que ObjectTable
por consistencia.
Los objetos almacenados en SessionObjectTable
deben implementar Serializable
para admitir la persistencia de la sesión, replicación y pasivación en contenedores de servlets.
BBjServices
Esta característica aún no está disponible al ejecutarse con BBjServices en la versión 25.03.
Configuración y recuperación de objetos de sesión
// ShoppingCart debe implementar Serializable
SessionObjectTable.put("cart", new ShoppingCart());
ShoppingCart cart = (ShoppingCart) SessionObjectTable.get("cart");
Comprobando la presencia
if (SessionObjectTable.contains("cart")) {
// La sesión tiene el carrito
}
Eliminando entradas de sesión
SessionObjectTable.clear("cart");
Tamaño de la tabla de sesiones
int total = SessionObjectTable.size();
StringTable
StringTable
proporciona acceso estático a variables de cadena globales. Es persistente y está limitado a la aplicación actual. Los valores pueden ser modificados programáticamente o inyectados a través de la configuración del entorno. Este mecanismo es particularmente útil para almacenar valores de configuración, banderas y configuraciones que deben ser accesibles en toda la aplicación pero que no necesitan llevar datos complejos.
Obtener y configurar valores de cadena
StringTable.put("COMPANY", "Acme Corp");
String company = StringTable.get("COMPANY");
Valores preconfigurados desde la configuración
Puede definir claves en su archivo webforj.conf
:
webforj.stringTable = {
COMPANY: 'Acme Corp'
}
Luego acceda a ello en el código:
String val = StringTable.get("COMPANY");
Comprobando la presencia
if (StringTable.contains("COMPANY")) {
// La clave está establecida
}
Limpiando una clave
StringTable.clear("COMPANY");