0

我有一个动态创建的HtmlInputText,它设置为从会话范围 bean 中的映射中提取其值。像这样。

HtmlInputText input = new HtmlInputText();
String expression = "${catalogue.itemValues.A" + item.getId() + "}";
ValueExpression valExpression = expressionFactory.createValueExpression(facesInstance.getELContext(), expression, String.class);
input.setValueExpression("value",valExpression);

whereitemValues是带有 getter 的 map,getItemValues()键是A1,A2等。

我以编程方式Map为 keyA1和 value添加了一个值1234。每当出现 JSF 页面时,都会呈现该值。但是,当我更改值并提交表单时,值不会更改。

我已经测试了一个h:inputText元素并将其链接到相同的键,它能够更新值并且新值反映在生成的HtmlInputText组件中。

这是如何引起的,我该如何解决?

4

1 回答 1

1

您应该使用#{}语法来绑定输入值,而不是${}语法。#{}可以做一个getset,而只能${}做一个get

也可以看看:

于 2012-06-16T13:38:14.087 回答