Можно ли изменить свойства области сеанса с помощью ognl
?
Например, если в моем сеансе есть атрибут с именем PROCESS_CONFIG
, который является объектом с атрибутом name
, как можно изменить этот атрибут name
в JSP?
Я пробовал следующее, но это не работает:
<s:textfield value="%{#session.PROCESS_CONFIG.name}" id="PROCESSNAME" name="#session.PROCESS_CONFIG.name"/>
Когда я отправляю форму и получаю доступ к объекту сеанса в своем действии через ServletActionContext.getRequest().getSession().getAttribute("PROCESS_CONFIG")
, атрибут name
не изменился.
ИЗМЕНИТЬ:
Объект, сохраненный в сеансе как PROCESS_CONFIG
, представляет собой очень сложный сложный объект (состоящий из многочисленных ссылок на другие объекты со списками списков объектов), и, на мой взгляд, я просто хочу представить очень маленькое подмножество. его атрибутов (включая атрибуты из его составных объектов). Таким образом, загрязнять мой JSP всеми другими полями как скрытыми нецелесообразно! Рассматриваемое представление представляет собой форму, в которой можно изменить значение этих полей, и я хотел бы напрямую и автоматически обновить объект, сохраненный в моем сеансе struts 2, PROCESS_CONFIG
, как если бы объект PROCESS_CONFIG
был свойством моего действия. Например, учитывая предыдущий фрагмент кода, PROCESSNAME
является атрибутом объекта PROCESS_CONFIG
, и я хотел бы автоматически обновлять его в объекте PROCESS_CONFIG
вместо того, чтобы иметь свойство PROCESSNAME
в моем действии, а затем явно выполнять настройку PROCESSNAME
в моем объекте PROCESS_CONFIG
.