jsf 2.0 f:找不到ajax渲染ID
发布时间:2020-12-16 02:52:28 所属栏目:百科 来源:网络整理
导读:当弹出窗口(pp1)中的“保存”按钮单击时,项目列表会更新. 但是当按下项目列表中的更新按钮时,渲染ID:form1:pp1在渲染时不会出现错误.如果做render =“@ all”它可以工作,但它不好. (错误: f:ajax包含未知ID’:form1:pp1′) h:form id="form1" prependi
当弹出窗口(pp1)中的“保存”按钮单击时,项目列表会更新.
但是当按下项目列表中的更新按钮时,渲染ID:form1:pp1在渲染时不会出现错误.如果做render =“@ all”它可以工作,但它不好. (错误:< f:ajax>包含未知ID’:form1:pp1′) <h:form id="form1" prependid=false> <h:panelGroup id="projects"> <ui:repeat var="action" value="#{dadadada}" varStatus="status"> <h:commandButton value="Save"> //gives id not found error <f:ajax event="click" execute="@form" render=":form1:pp1" listener="#{fsfsfsfsfs}" /> </h:commandButton> </ui:repeat> </h:panelGroup> // project panel group //popup <h:panelGroup id="pp1"> <div id="popup2" class="popup_block"> //save button in the popup <div class="popupBody_save2"> <h:commandButton image="resources/images/saveBtn.gif" value="Save"> <f:ajax event="click" execute="@form" render="projects" listener="#{dfsfssfs}" /> </h:commandButton> </div> </div> </h:panelGroup> </h:form> 解决方法
:form1:pp1将不起作用,因为您在表单上有prependId =“false”. pp1将无法工作,因为它正在寻找与< ui:repeat>相同范围内的组件.它本身就是一个UINamingContainer组件.
在webbrowser中打开JSF页面,右键单击并查看源代码以获取生成的HTML.找到由< h:panelGroup id =“pp1”>生成的HTML元素.看起来应该是这样的 <span id="foo:bar:pp1"> 您需要在render属性中使用前缀为:的这个ID. <f:ajax render=":foo:bar:pp1"> 如果存在自动生成的ID部分(例如j_id0),则需要为相关的父组件提供固定ID. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |