【发布时间】:2015-01-23 07:06:22
【问题描述】:
您好,我已经创建了构建动态表单的复合组件。 我将 3 个参数传递给支持 bean 的组件。其中 2 个是对象。
<p:outputPanel id="dynaForm" >
<p:outputPanel rendered="#{formTest.dynamicForm!=null}" >
Form in parent: #{formTest.dynamicForm.id}<br/>
<cc:dynamicFormComponent
formObject="#{formTest.form}"
formDataObject="#{formTest.recordObject}"
mode="1"
/>
</p:outputPanel>
</p:outputPanel>
静态使用时效果很好,但是当我尝试使用 selectOneMenu 动态更改属性formObject 并更新dynaForm 面板时,它第一次构建表单但当我尝试更改表单时,属性不会更新,它记得第一个选择。这只发生在对象属性上,如果我使用字符串,它会正常变化。我在面板和复合组件中输出表单的 id,似乎复合组件不想感知更新的值。
这是组件代码的基础:
<cc:interface componentType="dynamicFormComponentGenerator" >
</cc:interface>
<cc:implementation>
Form in component: #{cc.attrs.formObject.id}
<cc:implementation>
【问题讨论】:
标签: java jsf jsf-2 primefaces composite-component