Primefaces 3:组件 ID 和 Widget Var 不应具有相同的名称 [英] Primefaces 3: Component ID and Widget Var should not have the same name
本文介绍了Primefaces 3:组件 ID 和 Widget Var 不应具有相同的名称的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我很困惑为什么 IE 和 Chrome 无法呈现我的 Primefaces 3 UI.
我基本上有这个用例:我想要一个添加新成员按钮,当用户点击它时,会打开一个对话框,询问成员详细信息.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"xmlns:ui="http://java.sun.com/jsf/facelets"xmlns:h="http://java.sun.com/jsf/html"xmlns:f="http://java.sun.com/jsf/core"xmlns:p="http://primefaces.org/ui"><h:头></h:head><h:body><ui:composition template="../../WEB-INF/MyTemplate.xhtml"><ui:define name="content"><h:form id="memberListForm"><p:panel styleClass="search-panel"><h:panelGrid columns="2"><h:outputText value="#{msgs.firstName}" styleClass="label"/><h:inputText/></h:panelGrid><h:panelGrid columns="2"><h:outputText value="#{msgs.lastName}" styleClass="label"/><h:inputText/></h:panelGrid><p:commandButton value="Search" ajax="false"/><p:commandButton value="添加新成员" type="button"onclick="addMemberDialog.show()"/></p:面板><p:面板><p:dataTable value="#{memberManagedBean.memberDataModel}"id="membersTable" var="member" paginator="true" rows="10"selectionMode="单"paginatorTemplate="{CurrentPageReport} {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"rowsPerPageTemplate="5,10,15"><p:列><f:facet name="header"><h:outputText>#{msgs.firstName}</h:outputText></f:facet><h:outputText value="#{member.firstName}"/></p:列><p:列><f:facet name="header"><h:outputText>中间名</h:outputText></f:facet><h:outputText value="#{member.middleName}"/></p:列><p:列><f:facet name="header"><h:outputText>姓氏</h:outputText></f:facet><h:outputText value="#{member.lastName}"/></p:列><p:列><f:facet name="header"><h:outputText>会员日期</h:outputText></f:facet><h:outputText value="#{member.membershipDate}"><f:convertDateTime pattern="MMM dd, yyyy"/></h:outputText></p:列><p:列><f:facet name="header"><h:outputText>状态</h:outputText></f:facet><h:outputText value="#{member.status}"/></p:列></p:dataTable></p:面板></h:form><p:dialog id="addMemberDialog" header="会员详情"widgetVar="addMemberDialog" resizable="false" closable="false"><h:form id="createupdateform"><p:messages id="messages" autoUpdate="true"/><h:outputText value="测试对话框!"/><p:panelGrid columns="2" id="panel"><f:facet name="header">创建成员</f:facet><h:outputLabel value="First Name:" for="firstName"/><p:inputText label="名字" id="firstName" title="名字"required="true" value="#{memberManagedBean.newMember.firstName}"><f:validateRegex pattern=".*\p{Alpha}{3,16}"/></p:inputText><h:outputLabel value="Middle Name:" for="middleName"/><p:inputText label="中间名" id="中间名"标题=中间名"需要=真"value="#{memberManagedBean.newMember.middleName}"><f:validateRegex pattern=".*\p{Alpha}{3,16}"/></p:inputText><h:outputLabel value="Last Name:" for="lastName"/><p:inputText label="Last Name" id="lastName" title="Last Name"required="true" value="#{memberManagedBean.newMember.lastName}"><f:validateRegex pattern=".*\p{Alpha}{3,16}"/></p:inputText><h:outputLabel value="Membership Date:" for="membershipDate"/><p:calendar id="popupButtonCal"/><f:facet name="footer"><p:commandButton value="保存"actionListener="#{memberManagedBean.createOrUpdateListener}"/><p:commandButton value="取消" 立即="true"进程="@this"oncomplete="addMemberDialog.hide()"/></f:facet></p:panelGrid></h:form></p:对话框></ui:define></ui:composition></h:body></html>
在 firefox 上,没有遇到任何问题.对话框出来了.
但是在 Chrome 和 IE 上,当我单击按钮时什么也没有发生.
IE 还告诉 addMemberDialog 未定义.
另一个奇怪的事情,只有 Firefox 生成了我的页脚和完整的 </body>和