请教一个EL问题

我现在有个关系ValueExpression的问题想请教大家,

原来的程序用的是标签,我想在想替换掉标签
<j4j:getVariableMap target="#{updatesMap}" value="#{task}"/>
我想替换的就是这个标签
这是一个得到TASK变量的标签
updatesMap我现在已经在代码代码中得到了,并out 到了页面,但出现的问题是,虽然变量可以得到,但发现新添加的变量保存不了,我换了scope=session但仍然保存不了,我发现在标签的源码中有一个地方是我的源码里没有的,就是关于ValueExpression的

标签的源码:
final FacesContext facesContext = FacesContext.getCurrentInstance();
final ELContext elContext = facesContext.getELContext();
final Object value = valueExpression.getValue(elContext);
final Map<String,Object> updatesMap;
final TaskInstance task = (TaskInstance) value;
updatesMap = new UpdatesHashMap(task.getVariables());
targetExpression.setValue(elContext, updatesMap);
其中targetExpression是ValueExpression类型的。
而我没有用标签,所以就没有用ValueExpression
而是直接updatesMap=task.getVariables();把updatesMap值OUT了给了页面
两个差别就在ValueExpression,我的问题是,究竟ValueExpression起到了什么作用呢?使得标签的源码就可以work,而我的而不能work.谢谢!

你可能感兴趣的:(EL)