- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我收到一个错误,如 Component ID component has already been found in the view inside tree table column tag with id=col1。对于这个单个 xhtml 文件,我有两个托管 Bean,并且都在 session 范围内。
<?xml version='1.0' encoding='UTF-8' ?>
<!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:h="http://xmlns.jcp.org/jsf/html"
xmlns:ui="http://xmlns.jcp.org/jsf/facelets"
xmlns:p="http://primefaces.org/ui"
xmlns:f="http://xmlns.jcp.org/jsf/core">
<h:head>
<title>Category and Brand Manage Page</title>
</h:head>
<h:body>
<ui:composition template="/templates/layout.xhtml">
<ui:define name="content">
<h:form id="productform" enctype="multipart/form-data" rendered="#{loginManagedBean.isLoggedIn}">
<p:growl id="messages" autoUpdate="true" redisplay="false" showDetail="true"/>
<p:panel header="Brand Management" id="brandpanel">
<h:panelGrid columns="2" cellspacing="20">
<p:outputLabel value="Branch Name"/>
<p:selectOneMenu id="branchname" value="#{brandManagedBean.branchId}" style="width: 200px;">
<f:selectItem itemLabel="Select Branch" itemValue=""/>
<f:selectItems value="#{brandManagedBean.branchNamesMap}"/>
<p:ajax listener="#{brandManagedBean.selectBrands()}" update="brandpanel"/>
</p:selectOneMenu>
<p:outputLabel value="Brand Name"/>
<p:selectOneMenu id="brandname" value="#{brandManagedBean.id}" style="width: 200px;">
<f:selectItem itemLabel="Select Brands" itemValue=""/>
<f:selectItems value="#{brandManagedBean.brandNamesMap}"/>
<p:ajax event="change"/>
</p:selectOneMenu>
<p:outputLabel value="New or update brand name"/>
<p:inputText value="#{brandManagedBean.name}">
<p:ajax event="change"/>
</p:inputText>
</h:panelGrid>
<h:panelGrid columns="3">
<p:commandButton update="brandpanel" actionListener="#{brandManagedBean.insertBrand()}" value="Add"/>
<p:commandButton update="brandpanel" actionListener="#{brandManagedBean.updateBrand()}" value="Update"/>
<p:commandButton update="brandpanel" actionListener="#{brandManagedBean.deleteBrand()}" value="Delete"/>
</h:panelGrid>
</p:panel>
<p:panel header="Category Management" id="categorypanel">
<h:panelGrid columns="2" cellspacing="20">
<p:outputLabel value="Branch Name"/>
<p:selectOneMenu id="categorybranchname" value="#{categoryManagedBean.branchId}" style="width: 200px;">
<f:selectItem itemLabel="Select Branch" itemValue=""/>
<f:selectItems value="#{categoryManagedBean.branchNamesMap}"/>
<p:ajax listener="#{categoryManagedBean.selectFloors()}" update="categorypanel"/>
</p:selectOneMenu>
<p:outputLabel value="Floor Name"/>
<p:selectOneMenu id="categoryfloorname" value="#{categoryManagedBean.floorId}" style="width: 200px;">
<f:selectItem itemLabel="Select Floor" itemValue=""/>
<f:selectItems value="#{categoryManagedBean.floorsMap}"/>
<p:ajax listener="#{categoryManagedBean.selectCategories()}" update="categorypanel"/>
<p:ajax listener="#{categoryManagedBean.loadTreeTable()}" update="categorytree"/>
</p:selectOneMenu>
</h:panelGrid>
<h:panelGrid columns="4">
<p:outputLabel value="Category Name"/>
<p:selectOneMenu id="categoryname" value="#{categoryManagedBean.catId}" style="width: 200px;">
<f:selectItem itemLabel="Select Category" itemValue=""/>
<f:selectItems value="#{categoryManagedBean.categoryMap}"/>
<p:ajax listener="#{categoryManagedBean.selectSubCategory1()}" update="categorypanel"/>
</p:selectOneMenu>
<p:outputLabel value="New Category Name"/>
<p:inputText value="#{categoryManagedBean.catName}">
<p:ajax event="change"/>
</p:inputText>
</h:panelGrid>
<h:panelGrid columns="4">
<p:outputLabel value="Item Name"/>
<p:selectOneMenu id="subcategoryname" value="#{categoryManagedBean.subcat1Id}" style="width: 200px;">
<f:selectItem itemLabel="Select Item" itemValue=""/>
<f:selectItems value="#{categoryManagedBean.subCategory1Map}"/>
<p:ajax event="change"/>
</p:selectOneMenu>
<p:outputLabel value="New Item Name"/>
<p:inputText value="#{categoryManagedBean.subcat1Name}">
<p:ajax event="change"/>
</p:inputText>
</h:panelGrid>
<h:panelGrid columns="3">
<p:commandButton update="categorypanel" actionListener="#{categoryManagedBean.insertCategory()}" value="Add"/>
</h:panelGrid>
<p:treeTable id="categorytree" value="#{categoryManagedBean.root}" var="catdto"
selectionMode="single" selection="#{categoryManagedBean.selectNode}">
<f:facet id="face1" name="header">
Categories
</f:facet>
<p:column id="col1">
<f:facet name="header" id="face2">
Category Name
</f:facet>
<h:outputLabel id="out1" value="#{catdto.name}"/>
</p:column>
<p:column id="col2">
<f:facet name="header" id="face3">
Edit
</f:facet>
<p:commandLink id="com1" update=":productform:documentPanel" oncomplete="PF('documentDialog').show()" title="Update Form" styleClass="ui-icon ui-icon-pencil" >
<f:setPropertyActionListener value="#{catdto}" target="#{categoryManagedBean.selectedCategoryDto}" />
</p:commandLink>
</p:column>
<p:column id="col3">
<f:facet name="header" id="face4">
Delete
</f:facet>
<p:commandLink id="com2" action="#{categoryManagedBean.deleteCategory(category)}" type="button"
style="float: right; background-image: url('../resources/images/delete.jpg'); background-repeat: no-repeat;
background-size: 100% 100%; background-origin : border-box; width: 30px; height: 20px;">
</p:commandLink>
</p:column>
</p:treeTable>
</p:panel>
<p:dialog id="dialog" header="Update Form" showEffect="fade" widgetVar="documentDialog" modal="false" maximizable="true" minimizable="true">
<p:outputPanel id="documentPanel">
<h:panelGrid columns="2" cellpadding="5">
<h:outputLabel for="name" value="Category: " />
<p:inplace id="basic">
<h:inputText id="name" value="#{categoryManagedBean.selectedCategoryDto.name}" style="font-weight:bold" />
</p:inplace>
<h:panelGrid columns="2" style="margin-left: 100px">
<p:commandButton action="#{categoryManagedBean.updateCategory()}" value="Update" ajax="false" update=":categorypanel"/>
<p:commandButton action="#{categoryManagedBean.clear}" value="Clear" id="btnclear" ajax="false" />
</h:panelGrid>
</h:panelGrid>
</p:outputPanel>
</p:dialog>
</h:form>
</ui:define>
</ui:composition>
</h:body>
</html>
堆栈跟踪
SEVERE: JSF1007: Duplicate component ID productform:categorytree:col1 found in view.
Dec 12, 2013 5:27:01 PM com.sun.faces.util.Util checkIdUniqueness
SEVERE: +id: j_id1
type: javax.faces.component.UIViewRoot@9ce387
+id: javax_faces_location_HEAD
type: com.sun.faces.component.ComponentResourceContainer@1f54217
+id: j_id2
type: javax.faces.component.UIOutput@c5f91c
+id: j_id3
type: javax.faces.component.UIOutput@165c08a
+id: j_id4
type: javax.faces.component.UIOutput@143b527
+id: j_id5
type: javax.faces.component.UIOutput@2a237a
+id: j_id6
type: javax.faces.component.UIOutput@7f29f4
+id: j_id7
type: javax.faces.component.UIOutput@9b66f1
+id: j_id8
type: javax.faces.component.UIOutput@837332
+id: j_id9
type: javax.faces.component.UIOutput@1fffbc8
+id: j_idt1
type: <html xmlns="http://www.w3.org/1999/xhtml">
+id: j_idt2
type: javax.faces.component.UIOutput@1ddf77
+id: j_idt3
type:
<meta content="text/html; charset=UTF-8" http-equiv="Content-Type"/>
<title>Madharsha Control Panel Page</title>
+id: j_idt4
type: javax.faces.component.html.HtmlBody@14ba6a4
+id: j_idt5
type: org.primefaces.component.layout.Layout@1a96d23
+id: header
type: org.primefaces.component.layout.LayoutUnit@3c41cb
+id: j_idt6
type: org.primefaces.component.outputlabel.OutputLabel@39137
+id: j_idt7
type: org.primefaces.component.layout.LayoutUnit@32e320
+id: layoutform
type: javax.faces.component.html.HtmlForm@dd4f1b
+id: rootmenu
type: org.primefaces.component.menubar.Menubar@1747f49
+id: homemenu
type: org.primefaces.component.menuitem.UIMenuItem@150d2fe
+id: mastermenu
type: org.primefaces.component.submenu.UISubmenu@14c3f17
+id: j_idt8
type: org.primefaces.component.menuitem.UIMenuItem@c23503
+id: j_idt9
type: org.primefaces.component.menuitem.UIMenuItem@265e80
+id: tabletmenu
type: org.primefaces.component.menuitem.UIMenuItem@1063704
+id: logoutmenu
type: org.primefaces.component.menuitem.UIMenuItem@105ea2f
+id: loginmenu
type: org.primefaces.component.menuitem.UIMenuItem@151e258
+id: productform
type: javax.faces.component.html.HtmlForm@e33152
+id: messages
type: org.primefaces.component.growl.Growl@1bb22d9
+id: brandpanel
type: org.primefaces.component.panel.Panel@ed0cd7
+id: j_idt10
type: javax.faces.component.html.HtmlPanelGrid@e60409
+id: j_idt11
type: org.primefaces.component.outputlabel.OutputLabel@11325cd
+id: branchname
type: org.primefaces.component.selectonemenu.SelectOneMenu@16e471
+id: j_idt12
type: javax.faces.component.UISelectItem@efdaaa
+id: j_idt13
type: javax.faces.component.UISelectItems@fcd37b
+id: j_idt14
type: org.primefaces.component.outputlabel.OutputLabel@a04e7e
+id: brandname
type: org.primefaces.component.selectonemenu.SelectOneMenu@814915
+id: j_idt15
type: javax.faces.component.UISelectItem@1e52afd
+id: j_idt16
type: javax.faces.component.UISelectItems@697520
+id: j_idt17
type: org.primefaces.component.outputlabel.OutputLabel@1888b29
+id: j_idt18
type: org.primefaces.component.inputtext.InputText@1686d07
+id: j_idt19
type: javax.faces.component.html.HtmlPanelGrid@ce1366
+id: j_idt20
type: org.primefaces.component.commandbutton.CommandButton@15b920e
+id: j_idt21
type: org.primefaces.component.commandbutton.CommandButton@d1de09
+id: j_idt22
type: org.primefaces.component.commandbutton.CommandButton@482a86
+id: categorypanel
type: org.primefaces.component.panel.Panel@1dfcbc3
+id: j_idt23
type: javax.faces.component.html.HtmlPanelGrid@1baa99d
+id: j_idt24
type: org.primefaces.component.outputlabel.OutputLabel@1d590a3
+id: categorybranchname
type: org.primefaces.component.selectonemenu.SelectOneMenu@afcd9
+id: j_idt25
type: javax.faces.component.UISelectItem@15e0b9b
+id: j_idt26
type: javax.faces.component.UISelectItems@14bfd33
+id: j_idt27
type: org.primefaces.component.outputlabel.OutputLabel@1dc4c0b
+id: categoryfloorname
type: org.primefaces.component.selectonemenu.SelectOneMenu@485e7
+id: j_idt28
type: javax.faces.component.UISelectItem@f326a7
+id: j_idt29
type: javax.faces.component.UISelectItems@16ed6d9
+id: j_idt30
type: javax.faces.component.html.HtmlPanelGrid@1db4fa7
+id: j_idt31
type: org.primefaces.component.outputlabel.OutputLabel@14a8a00
+id: categoryname
type: org.primefaces.component.selectonemenu.SelectOneMenu@aa4749
+id: j_idt32
type: javax.faces.component.UISelectItem@12e467c
+id: j_idt33
type: javax.faces.component.UISelectItems@11589f6
+id: j_idt34
type: org.primefaces.component.outputlabel.OutputLabel@1147608
+id: j_idt35
type: org.primefaces.component.inputtext.InputText@511e57
+id: j_idt36
type: javax.faces.component.html.HtmlPanelGrid@19eef40
+id: j_idt37
type: org.primefaces.component.outputlabel.OutputLabel@16d756e
+id: subcategoryname
type: org.primefaces.component.selectonemenu.SelectOneMenu@138c603
+id: j_idt38
type: javax.faces.component.UISelectItem@50093a
+id: j_idt39
type: javax.faces.component.UISelectItems@8dea14
+id: j_idt40
type: org.primefaces.component.outputlabel.OutputLabel@102f163
+id: j_idt41
type: org.primefaces.component.inputtext.InputText@35cd5d
+id: j_idt42
type: javax.faces.component.html.HtmlPanelGrid@3dc0e2
+id: j_idt43
type: org.primefaces.component.commandbutton.CommandButton@4269de
+id: categorytree
type: org.primefaces.component.treetable.TreeTable@349f31
+id: j_idt44
type:
Categories
+id: col1 <===============
type: org.primefaces.component.column.Column@eb38b5
+id: out1
type: javax.faces.component.html.HtmlOutputLabel@d802ee
+id: col2
type: org.primefaces.component.column.Column@1a88afb
+id: com1
type: org.primefaces.component.commandlink.CommandLink@3c7600
+id: col3
type: org.primefaces.component.column.Column@1671af2
+id: com2
type: org.primefaces.component.commandlink.CommandLink@1a2769
+id: col1 <===============
type: org.primefaces.component.column.Column@bf5e96
+id: j_idt45
type:
Category Name
+id: out1
type: javax.faces.component.html.HtmlOutputLabel@2e2067
+id: col2
type: org.primefaces.component.column.Column@51703d
+id: j_idt46
type:
Edit
+id: com1
type: org.primefaces.component.commandlink.CommandLink@9fc24a
+id: col3
type: org.primefaces.component.column.Column@8cb5ba
+id: j_idt47
type:
Delete
+id: com2
type: org.primefaces.component.commandlink.CommandLink@1eef7db
+id: dialog
type: org.primefaces.component.dialog.Dialog@1d26686
+id: documentPanel
type: org.primefaces.component.outputpanel.OutputPanel@491682
+id: j_idt48
type: javax.faces.component.html.HtmlPanelGrid@64db02
+id: j_idt49
type: javax.faces.component.html.HtmlOutputLabel@1667f48
+id: basic
type: org.primefaces.component.inplace.Inplace@2e50af
+id: name
type: javax.faces.component.html.HtmlInputText@b34ab2
+id: j_idt50
type: javax.faces.component.html.HtmlPanelGrid@ed25ec
+id: j_idt51
type: org.primefaces.component.commandbutton.CommandButton@154ae8e
+id: btnclear
type: org.primefaces.component.commandbutton.CommandButton@90196c
+id: footer
type: org.primefaces.component.layout.LayoutUnit@753f4a
+id: j_idt52
type: org.primefaces.component.outputlabel.OutputLabel@18e3248
+id: j_idt53
type:
</html>
Dec 12, 2013 5:27:01 PM com.sun.faces.application.view.FaceletViewHandlingStrategy handleRenderException
SEVERE: Error Rendering View[/product/productmanage.xhtml]
java.lang.IllegalStateException: Component ID productform:categorytree:col1 has already been found in the view.
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:974)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.util.Util.checkIdUniqueness(Util.java:958)
at com.sun.faces.application.view.FaceletFullStateManagementStrategy.saveView(FaceletFullStateManagementStrategy.java:706)
at com.sun.faces.application.StateManagerImpl.saveView(StateManagerImpl.java:89)
at javax.faces.application.StateManager.getViewState(StateManager.java:593)
at com.sun.faces.context.PartialViewContextImpl.renderState(PartialViewContextImpl.java:454)
at com.sun.faces.context.PartialViewContextImpl.processPartial(PartialViewContextImpl.java:322)
at org.primefaces.context.PrimePartialViewContext.processPartial(PrimePartialViewContext.java:57)
at javax.faces.component.UIViewRoot.encodeChildren(UIViewRoot.java:1004)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1896)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:425)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2430)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2419)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at java.lang.Thread.run(Thread.java:722)
最佳答案
我解决了这个错误。我不知道为什么 Jsf 需要在 bean 的构造函数中初始化所有的树节点。我用空字符串值初始化了所有树节点,然后一切正常。它适用于 Session/View Scoped bean。
更新:1由于不正确的 ajax 更新,也可能会发生此错误。我试图从每个组件发出 ajax 请求并更新整个面板(面板内的组件)。然后我将更新更改为仅更新特定 View ,例如。选择一个菜单。这里的解决方案是仅更新特定组件而不更新整个表单或 View 。
更新:2我在 web.xml 文件中将 param-value 从 false 更改为 true,然后这个问题就解决了,
<context-param>
<param-name>javax.faces.PARTIAL_STATE_SAVING</param-name>
<param-value>true</param-value>
</context-param>
关于java - 在 View 中发现重复的组件 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20543070/
出现在 python 2.7.8 中。 3.4.1 不会发生这种情况。 示例: >>> id(id) 140117478913736 >>> id(id) 140117478913736 >>> id
好吧,我对动态创建的控件的 ID 很困惑。 Public Class TestClass Inherits Panel Implements INamingContainer
我收到下面的错误,说有堆栈溢出。发生这种情况是因为带有 IN (id, id, id...id) 的 SQL 语句有大量参数。有没有什么办法解决这一问题?这是在我使用 Eclipse 的本地环境中发生
为什么 CPython(不知道其他 Python 实现)有以下行为? tuple1 = () tuple2 = ()
为什么 CPython(对其他 Python 实现一无所知)有以下行为? tuple1 = () tuple2 = ()
非常简单的问题:当我有一个持久对象时,它通常有一个名为 ID 的属性(对于抽象类)。 那么..命名约定是ID还是Id? 例如。 public int ID { get; set; } 或 public
知道为什么我会收到此错误,我已经尝试了所有命名约定(小写/大写) 我正在使用 Vaadin,这是我的代码片段: public class Usercontainer extends BeanI
为什么 CPython(不知道其他 Python 实现)有以下行为? tuple1 = () tuple2 = ()
我需要改变表的所有主键 UPDATE TODO SET id = id + 1 但我做不到(Demo 来自 Ahmad Al-Mutawa 的回答)描述了原因。主键不能这样改。 我也不能根据这是 sq
我正在尝试列出与用户相关的讨论列表。 想象一下,如果你愿意的话: posts -------------------------------------------------------------
我有一个表,其中包含一些具有自己的 ID 和共享 SKU key 的文章。我尝试使用左连接进行查询,并使用组结果获取从查询返回的所有 id。 我的数据结构是这样的: id - name -
在下表People中: id name 1 James 2 Yun 3 Ethan 如果我想找到最大 ID,我可以运行此查询 select max(id) id from People; 结果是
我正在产品页面上创建评论模块,其中显示垃圾评论选项,并显示 onclick 显示和隐藏弹出窗口。现在它在单个评论中工作正常但是当评论是两个时它同时打开两个因为类是相同的。现在这就是为什么我想要获取父
根据 REST 哲学,PUT操作应该(取自维基百科): PUT http://example.com/resources/142 Update the address member of the co
我想知道如何在使用 PHP 或 JavaScript 进行身份验证后从 Google Analytics 获取 Property Id、View Id 和 Account Id?因为我希望能够将它们存
我想使用所选按钮的 ID 进行删除。但我不知道如何从中获取/获取 id。我尝试了 this.id 但不起作用。 这是我创建按钮的地方: var deleteEmployer= document.cre
我有一个具有以下结构的表“表” ID LinkedWith 12 13 13 12 14 13 15 14 16
请不要在未阅读问题的情况下将问题标记为重复。我确实发布了一个类似的问题,但 STACKOVERFLOW 社区成员要求我单独重新发布修改后的问题,因为考虑到一个小而微妙的修改,解决方案要复杂得多。 假设
在 Android Studio 中,我创建了一个 Person.java 类。我使用Generate 创建了getter 和setter 以及构造函数。 这是我的 Person.java 类: pu
如何在 jQuery 中制作这样的东西: //这是显示的主体 ID //当我悬停 #hover-id 时,我希望 #principal-id 消失并更改 。但是当我将光标放在 #this-id 上时
我是一名优秀的程序员,十分优秀!