是否可以使用 OGNL 更改会话范围属性?
例如,如果我的会话中有一个名为
PROCESS_CONFIG
的属性,它是一个具有属性 name
的对象,我如何在 JSP 中更改此属性 name
?
我尝试了以下方法,但没有成功:
<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
物体。