我有一个动态创建的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);
其中itemValues
是一张吸气为getItemValues()
的地图,密钥为A1
,A2
等。
我已使用密钥Map
和值A1
以编程方式向1234
添加了值。每当出现JSF页面时,都会呈现该值。但是,当我更改值并提交表单时,该值不会更改。
我使用h:inputText
元素进行了测试,并将其链接到同一个键,并且能够更新值,新值会反映在生成的HtmlInputText
组件中。
这是如何引起的?如何解决?
答案 0 :(得分:1)
您应该使用#{}
语法来绑定输入值,而不是${}
语法。 #{}
可以执行get
和set
,而${}
只能执行get
。