Anu*_*ngh 8 ajax composite-component jsf-2
我正在尝试使用复合组件事件更新父组件f:ajax.
复合组件在这里:
<cc:interface>
<cc:attribute name="update" />
<cc:attribute name="customid" required="true"/>
<cc:attribute name="val" required="true"/>
<cc:attribute name="selectedvalue" required="true"/>
</cc:interface>
<cc:implementation>
<h:panelGrid columns="2" style="font-size: 10px" >
<p:selectOneMenu id="#{cc.attrs.customid} value="#{cc.attrs.selectedvalue}">
<f:selectItems value="#{cc.attrs.val}"/>
<f:ajax event="change" render="#{cc.attrs.update" />
</p:selectOneMenu>
<p:commandButton type="button" icon="ui-icon-plus" onclick="dlg.show();" />
</h:panelGrid>
</cc:implementation>
Run Code Online (Sandbox Code Playgroud)
现在使用此组件时如下:
<h:form>
<ez:combo customid="make" val="#{vehicleBean.makes}" selectedvalue="#vehicleBean.vehicle.make}" update="model" />
<p:selectOneMenu id="model" value="#{vehicleBean.vehicle.model}">
<f:selectItems value="#{vehicleBean.models}" />
</p:selectOneMenu>
</h:form>
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
包含一个未知的id"模型" - 无法在组件make的上下文中找到它
Mat*_*ndy 15
由于要更新的组件不在cc中,因此必须以不同的方式解决它.首先给你的表单一个id:
<h:form id="myform">
Run Code Online (Sandbox Code Playgroud)
然后从cc中解决目标组件,如下所示:
render=":myform:model"
Run Code Online (Sandbox Code Playgroud)
注意尾随冒号,它让JSF从文档根目录中搜索属性.
| 归档时间: |
|
| 查看次数: |
9538 次 |
| 最近记录: |