我有一些需要以编程方式显示的 bean 字段。是这样的:
HtmlPanelGrid panel = new HtmlPanelGrid();
panel.setColumns(4);
HtmlOutputLabel fieldOut = new HtmlOutputLabel();
fieldOut.setId("fieldOutId");
fieldOut.setValue("name");
panel.getChildren().add(fieldOut);
HtmlInputText fieldIn = new HtmlInputText();
fieldIn.setId("fieldInId");
fieldIn.setPartialSubmit(true);
fieldIn.setValueExpression(
"field", UtilFaces.createValueExpression("#{newElementBean.fieldName}",String.class));
panel.getChildren().add(fieldIn);
mainForm.getChildren().add(panel);
在 newElements.xhtml 中,我定义了一个绑定到 mainForm 的表单,以这种方式:
<ice:form binding="#{newElementBean.mainForm}">
<ice:inputText id="ANOTHERFIELD" value="#{newElementBean.anotherField}"/>
<ice:commandButton action="#{newElementBean.save}" value="Save"/>
</ice:form>
当我单击保存按钮并转到下一个视图时,“ANOTHERFIELD”字段已从 bean 中获取值,并正确显示,但动态生成的字段显示为空。它在支持 bean 中的值也为空。就像我在支持 bean 中创建的那样ValueExpression
不起作用。HtmlInputText
我将 Icefaces 3.3 与 Mojarra 2.1.17 一起使用。
这是如何引起的,我该如何解决?