tutorial son propiedades los interfaz grafica formularios español cuales controles java jsp session struts2 ognl

java - son - ¿Cómo cambiar las propiedades del alcance de la sesión usando ognl?



propiedades de netbeans (1)

¿Es posible cambiar las propiedades del alcance de sesión usando ognl ?

Por ejemplo, si tengo en mi sesión un atributo llamado PROCESS_CONFIG que es un objeto con un name atributo, ¿cómo se puede cambiar este name atributo en un JSP?

He intentado lo siguiente, pero no funciona:

<s:textfield value="%{#session.PROCESS_CONFIG.name}" id="PROCESSNAME" name="#session.PROCESS_CONFIG.name"/>

Cuando envío el formulario y ServletActionContext.getRequest().getSession().getAttribute("PROCESS_CONFIG") objeto de sesión en mi acción, a través de ServletActionContext.getRequest().getSession().getAttribute("PROCESS_CONFIG") , el name del atributo no ha cambiado.

EDITAR:

El objeto guardado en la sesión como PROCESS_CONFIG , es un objeto complejo muy profundo (compuesto por numerosas referencias a otros objetos, con listas de listas de objetos) y en mi opinión solo quiero presentar un subconjunto muy pequeño de sus atributos (incluidos los atributos de sus objetos compuestos). Entonces, ¡contaminar mi JSP con todos los demás campos como ocultos no es práctico! La vista en cuestión es una forma en la que se puede cambiar el valor de esos campos y me gustaría actualizar directa y automáticamente el objeto guardado en mi sesión Struts 2, PROCESS_CONFIG , como si el objeto PROCESS_CONFIG fuera una propiedad de mi acción. Por ejemplo, dado el fragmento de código anterior, PROCESSNAME es un atributo del objeto PROCESS_CONFIG y me gustaría actualizarlo automáticamente en el objeto PROCESS_CONFIG en lugar de tener una propiedad PROCESSNAME en mi acción y luego tener que hacer explícitamente la configuración de PROCESSNAME en mi objeto PROCESS_CONFIG .


La sesión en S2 es un mapa donde puede colocar los atributos antes de usarlos con OGNL en el JSP. Para que esto funcione, deje que su acción implemente el SessionAware y mire el sitio oficial para la descripción y los usos, y lea ¿Cómo accedemos a la sesión desde las Preguntas frecuentes?

A su pregunta: ¿por qué no obtuvo el atributo en JSP. Porque está utilizando S2 y OGNL para obtenerlo (a través de #session reference) y no puso el atributo en la sesión S2. La implementación de la sesión S2 difiere de la sesión http estándar. Sin embargo, si establece el atributo en la sesión http estándar, puede acceder a ella en modo JSP 2.0. Lo opuesto también es cierto.