powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / jsf findComponent - что могло сломаться?
7 сообщений из 7, страница 1 из 1
jsf findComponent - что могло сломаться?
    #37932831
AndreyDmt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Приветствую!
Вот так помнится всегда работало и компонент нормально находился:
UIComponent cmp = FacesContext.getCurrentInstance().getViewRoot().findComponent("myComp");
Вдруг обнаружил, что в новом проекте такое не срабатывает. Пытаюсь найти компонент, вложенный
в форму - обнаруживаю что сама форма не находится; Смотрю что firebug показывает, вроде всё
нормально, искомая форма существует:
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
<body>
<form id="firstForm" enctype="application/x-www-form-urlencoded" action="/kronav2/topology/psrObjectReestr.seam" method="post" name="firstForm">
<input type="hidden" value="firstForm" name="firstForm">
...
</form>
<div class="body" style="width: auto; margin: 4px; padding: 4px;">
<form id="secondForm" enctype="application/x-www-form-urlencoded" action="/proj/page.seam" method="post" name="secondForm">
<input type="hidden" value="secondForm" name="secondForm">
...
</form>


Проверяю, что есть в .getViewRoot().getChildren() - firstForm есть, secondForm -нет.
Всяко пробовал - так и не добрался до второй формы. Вообще чего то ничего не понимаю - предыдущий проект по платформе был один в один - там работало. Может какой добрый человек натолкнёт на мысль - чего могло сломаться.
Проект на seam-2.2.2, richfaces-3.3.3, jboss-5.1 - хотя вроде к проблеме не должно иметь отношение.
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37932888
bochkov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
покажи исходный код jsf
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37933465
AndreyDmt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Весь? Для победы - запросто

Вот сама форма. Нужно поймать "psrObjReestrForm"

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
140.
141.
142.
143.
144.
145.
146.
147.
148.
149.
150.
151.
152.
153.
154.
155.
156.
157.
158.
159.
160.
161.
162.
163.
164.
165.
166.
167.
168.
169.
170.
171.
172.
173.
174.
175.
176.
177.
178.
179.
180.
181.
182.
183.
184.
185.
186.
187.
188.
189.
190.
191.
192.
193.
194.
195.
196.
197.
198.
199.
200.
201.
202.
203.
204.
205.
206.
207.
208.
209.
210.
211.
212.
213.
214.
215.
216.
217.
218.
219.
220.
221.
222.
223.
224.
225.
226.
227.
228.
229.
230.
231.
232.
233.
234.
235.
236.
237.
238.
239.
240.
241.
242.
243.
244.
245.
246.
247.
248.
249.
250.
251.
252.
253.
254.
255.
256.
257.
258.
259.
260.
261.
262.
263.
264.
265.
266.
267.
268.
269.
270.
271.
272.
273.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:s="http://jboss.com/products/seam/taglib"
	xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html" xmlns:c="http://java.sun.com/jstl/core"
	xmlns:rich="http://richfaces.org/rich" xmlns:a4j="http://richfaces.org/a4j"
	xmlns:o="http://openfaces.org/" template="/commondata/layout/template.xhtml">

	<ui:define name="contextmenu">
		<rich:dropDownMenu id="psrLeftMenu" value="Реестр энергообъектов">
			<rich:menuItem icon="/commondata/img/filter/setfilter.png" value="Установить фильтр"
				action="#{psrObjReestr.setFilterAction}" reRender="psrObjList">
				<s:conversationPropagation type="nested" />
			</rich:menuItem>
			<rich:menuItem icon="/commondata/img/filter/clearfilter.png" value="Сбросить фильтр"
				disabled="#{psrObjReestr.editable}" actionListener="#{psrObjReestr.clearFilterListener}"
				reRender="psrObjList" />
			<rich:menuSeparator />
			<rich:menuGroup value="Редактируемый объект">
				<rich:menuItem value="Объект реестра" actionListener="#{psrObjReestr.reestrModeListener}"
					reRender="psrLeftMenu" iconDisabled="/commondata/img/button/16/checked.png"
					disabled="#{psrObjReestr.editModeReestr}" />
				<rich:menuItem value="Объект топологии" actionListener="#{psrObjReestr.topologyModeListener}"
					reRender="psrLeftMenu,parlistTree" iconDisabled="/commondata/img/button/16/checked.png"
					disabled="#{psrObjReestr.editModeTopology}" />
			</rich:menuGroup>
			<rich:menuGroup value="Структура объекта">
				<rich:menuItem value="Топология" actionListener="#{psrObjReestr.topologyBuildListener}"
					iconDisabled="/commondata/img/button/16/checked.png" disabled="#{psrObjReestr.topoBuildMode}"
					reRender="psrLeftMenu,topoTree" />
				<rich:menuItem value="Реестр" actionListener="#{psrObjReestr.reestrBuildListener}"
					iconDisabled="/commondata/img/button/16/checked.png" disabled="#{psrObjReestr.reestrBuildMode}"
					reRender="psrLeftMenu,topoTree" />
			</rich:menuGroup>
			<rich:menuSeparator />
			<rich:menuItem value="На корневой уровень" actionListener="#{psrObjReestr.moveToRootListener}"
				oncomplete="O$('psrObjReestrForm:createTopologyTreeAjax').run();" />
		</rich:dropDownMenu>
	</ui:define>

	<rich:dragIndicator id="psrObjectInd" />

	<ui:define name="body">
		<h:form id="psrObjReestrForm">

			<a4j:queue />

			<ui:include src="/commondata/layout/formtitle.xhtml">
				<ui:param name="formTitleData" value="#{psrObjReestr}" />
			</ui:include>
			<o:ajax id="createObjectListAjax" standalone="true" immediate="true"
				render="psrObjList parlistTree panEditBtn panObjectBtn formTitlePan"
				listener="#{psrObjReestr.createObjectListener}" />
			<o:ajax id="createTopologyTreeAjax" standalone="true" immediate="false"
				render="topoTree selHistObject panObjectBtn panEditBtn psrLeftMenu"
				listener="#{psrObjReestr.createTopoListener}" />
			<o:ajax id="changeEditableObjectAjax" standalone="true" immediate="false"
				render="topoTree selHistObject panObjectBtn panEditBtn psrLeftMenu"
				listener="#{psrObjReestr.editObjectListener}" />
			<o:ajax id="dropPowerObjectAjax" standalone="true" immediate="true"
				render="psrObjList parlistTree panEditBtn panObjectBtn"
				listener="#{psrObjReestr.dropendPwrObjectListener}">
				<o:confirmation for="dropPowerObjectAjax" defaultButton="cancel" draggable="true"
					draggableByContent="true" message="Подтвердите перенос объекта!"
					details="#{psrObjReestr.detailTextOnDelete}" captionClass="rich-toolbar"
					hideOnOuterClick="true" okButtonText="Подтвердить" cancelButtonText="Отменить"
					caption="Смена зоны ответственности" />
			</o:ajax>

			<o:borderLayoutPanel style="height:600px;width:100%;border:1px solid gray;"
				styleClass="rich-panel">
				<o:sidePanel alignment="left" resizable="true" collapsible="false" size="25%" minSize="15%"
					maxSize="40%">

					<h:selectOneMenu id="selHistObject" value="#{psrObjReestr.histObjectID}"
						valueChangeListener="#{psrObjReestr.changeHistObjectListener}"
						style="width:100%;margin:0px;padding:0px;" immediate="true"
						onchange="O$('psrObjReestrForm:createTopologyTreeAjax').run();">
						<c:forEach var="histList" items="#{psrObjReestr.histObjectList}">
							<f:selectItem itemValue="#{histList.objectID}" itemLabel="#{histList.objectName}" />
						</c:forEach>
					</h:selectOneMenu>

					<rich:tree id="topoTree" switchType="ajax" ajaxSingle="false" ajaxSubmitSelection="true"
						rightClickSelection="false" nodeFace="#{topoNode.nodeFace}" dragIndicator="psrObjectInd"
						ignoreDupResponses="true" eventsQueue="default" icon="#{topoNode.nodeIcon}"
						iconLeaf="#{topoNode.nodeIcon}" dragValue="#{topoNode}" dropValue="#{topoNode}"
						dropListener="#{psrObjReestr.dropTopoNodeListener}"
						style="height:580px;width:auto;overflow:auto;margin:0px;padding:0px;">

						<rich:recursiveTreeNodesAdaptor var="topoNode" includedRoot="true"
							roots="#{psrObjReestr.topoNodeRootList}"
							nodes="#{psrObjReestr.getTopoNodeChildList(topoNode)}">
						</rich:recursiveTreeNodesAdaptor>

						<rich:dndParam type="drag" name="label"
							value="#{topoNode != null ? topoNode.nodeName : 'toponode'}" />

						<rich:treeNode type="rootnode" acceptedTypes="pwrobject,toponode" dragType="toponode">
							<h:outputText value="#{topoNode.nodeName}" style="#{topoNode.nodeStyle}"
								title="#{topoNode.nodeTitle}" />
							<a4j:support event="onselected" action="#{psrObjReestr.topoNodeSelectAction(topoNode)}" />
						</rich:treeNode>

						<rich:treeNode type="objectnode" acceptedTypes="pwrobject,toponode" dragType="toponode">
							<h:outputText value="#{topoNode.nodeName}" style="#{topoNode.nodeStyle}"
								title="#{topoNode.nodeTitle}" />
							<a4j:support event="onselected" action="#{psrObjReestr.topoNodeSelectAction(topoNode)}" />

							<rich:contextMenu event="oncontextmenu" submitMode="ajax">
								<rich:menuItem value="На корневой уровень"
									actionListener="#{psrObjReestr.moveToRootListener}"
									oncomplete="O$('psrObjReestrForm:createTopologyTreeAjax').run();" />
								<rich:menuItem value="Раскрыть узел топологии"
									actionListener="#{psrObjReestr.expandTopoNodeListener}" reRender="topoTree" />
								<rich:menuItem value="Изменить направление перетоков"
									actionListener="#{psrObjReestr.changeDirectionListener}" />
							</rich:contextMenu>
						</rich:treeNode>

						<rich:treeNode type="terminalnode">
							<h:outputText value="#{topoNode.nodeName}" style="#{topoNode.nodeStyle}"
								title="#{topoNode.nodeTitle}" />
							<a4j:support event="onselected" action="#{psrObjReestr.topoNodeSelectAction(topoNode)}" />
						</rich:treeNode>

						<rich:treeNode type="connectnode">
							<h:outputText value="#{topoNode.nodeName}" style="#{topoNode.nodeStyle}"
								title="#{topoNode.nodeTitle}" />
							<a4j:support event="onselected" action="#{psrObjReestr.topoNodeSelectAction(topoNode)}" />
						</rich:treeNode>

						<rich:treeNode type="reestrnode" acceptedTypes="pwrobject,reestrnode" dragType="reestrnode">
							<h:outputText value="#{topoNode.nodeName}" style="#{topoNode.nodeStyle}"
								title="#{topoNode.nodeTitle}" />
							<a4j:support event="onselected" action="#{psrObjReestr.topoNodeSelectAction(topoNode)}" />
						</rich:treeNode>
					</rich:tree>

				</o:sidePanel>

				<h:panelGroup style="height:360px;width:100%;margin:0px;padding:0px;">
					<o:borderLayoutPanel styleClass="rich-panel"
						style="height:360px;width:100%;margin:0px;padding:0px;">
						<o:sidePanel alignment="left" size="65%" minSize="40%" maxSize="80%" resizable="true"
							collapsible="false" style="margin:0px;padding:0px;">
							<o:dataTable id="psrObjList" value="#{psrObjReestr.powerObjectList}" var="psrobjlist"
								style="height:330px;width:100%;margin:0px;padding:0px;font-size:11px;white-space:nowrap;"
								rowKey="#{psrobjlist.objectID}" verticalGridLines="1px solid #e0e0e0"
								rolloverRowStyle="background: #b6cfec;" headerVertSeparator="1px solid #a0a0a0"
								headerRowClass="rich-panel-header">
								<o:singleRowSelection rowData="#{psrObjReestr.selectedPowerObject}"
									action="#{psrObjReestr.changePowerObjectAction}" enabled="#{!psrObjReestr.editable}"
									onajaxend="O$('psrObjReestrForm:changeEditableObjectAjax').run();" />
								<o:scrolling />
								<o:columnResizing />
								<f:facet name="noDataMessage">
									<h:outputText value="Нет данных для отображения" style="color:red;" />
								</f:facet>

								<o:column style="width:20px;" header="*">
									<h:graphicImage style="height:16px;width:16px;margin:0px;padding:0px;"
										url="#{psrobjlist.objectTypeIcon}" />
								</o:column>

								<o:column style="width:60%;" header="Наименование объекта">
									<a4j:outputPanel ajaxRendered="false">
										<rich:dragSupport dragIndicator="psrObjectInd" dragType="pwrobject"
											dragValue="#{psrobjlist}" disableDefault="true">
											<rich:dndParam type="drag" name="label"
												value="#{psrobjlist != null ? psrobjlist.objectName : 'object'}" />
										</rich:dragSupport>
										<h:outputText value="#{psrobjlist.objectName}" />
									</a4j:outputPanel>
								</o:column>

								<o:column style="width:40%;" header="Тип объекта">
									<h:outputText value="#{psrobjlist.objectTypeName}" />
								</o:column>
							</o:dataTable>

							<h:panelGroup id="panObjectBtn">
								<table style="width: 100%; margin: 0px; padding: 0px;">
									<tr style="width: 100%; margin: 0px; padding: 0px;">
										<td><a4j:commandButton value="Построить" style="margin:2px 0 0 4px; padding: 0px;"
												actionListener="#{psrObjReestr.buldTopoListener}"
												disabled="#{psrObjReestr.buildTopoDisabled}"
												oncomplete="O$('psrObjReestrForm:createTopologyTreeAjax').run();" /></td>
										<td style="width: 100%; margin: 0px; padding: 0px;" />
										<td><a4j:commandButton value="Добавить" style="margin:2px 0 0 4px; padding: 0px;"
												actionListener="#{psrObjReestr.addSubjectListener}"
												disabled="#{psrObjReestr.addDisabled}"
												reRender="panObjectBtn,panEditBtn,psrObjList,parlistTree,psrLeftMenu" ajaxSingle="true"
												ignoreDupResponses="true" limitToList="true" /></td>
										<td><a4j:commandButton value="Изменить" style="margin:2px 0 0 4px; padding: 0px;"
												actionListener="#{psrObjReestr.editSubjectListener}"
												disabled="#{psrObjReestr.editDisabled}"
												reRender="panObjectBtn,panEditBtn,psrObjList,parlistTree,psrLeftMenu" ajaxSingle="true"
												ignoreDupResponses="true" limitToList="true" /></td>
										<td><o:commandButton id="delBtn" style="margin:2px 0 0 4px; padding: 0px;"
												value="Удалить" disabled="#{psrObjReestr.delDisabled}"
												actionListener="#{psrObjReestr.delSubjectListener}"
												render="psrObjList panObjectBtn panEditBtn psrLeftMenu">
												<o:confirmation for="delBtn" defaultButton="cancel" draggable="true"
													draggableByContent="true" message="Подтвердите удаление!"
													details="#{psrObjReestr.detailTextOnDelete}" captionClass="rich-toolbar"
													hideOnOuterClick="true" okButtonText="Подтвердить" cancelButtonText="Отменить"
													caption="Удаление субъекта рынка" />
											</o:commandButton></td>
									</tr>
								</table>
							</h:panelGroup>
						</o:sidePanel>

						<rich:panel style="width:99.6%;margin:0px;padding:0px;" height="359px"
							header="Зоны ответственности">
							<rich:tree id="subStructTree" switchType="ajax" ajaxSingle="false" ajaxSubmitSelection="true"
								rightClickSelection="true" nodeFace="#{subStructNode.nodeFace}" ignoreDupResponses="true"
								eventsQueue="default" icon="#{subStructNode.nodeIcon}" iconLeaf="#{subStructNode.nodeIcon}"
								dropValue="#{subStructNode}" acceptedTypes="pwrobject"
								dropListener="#{psrObjReestr.dropPwrObjectListener}"
								stateAdvisor="#{psrObjReestr.subjectTreeAdvisor}"
								style="height:337px;width:auto;overflow:auto;margin:0px;padding:0px;"
								ondrop="O$('psrObjReestrForm:dropPowerObjectAjax').run();">

								<rich:recursiveTreeNodesAdaptor var="subStructNode" includedRoot="true"
									roots="#{psrObjReestr.userSubjectRootList}"
									nodes="#{psrObjReestr.getChildNodeList(subStructNode)}">
								</rich:recursiveTreeNodesAdaptor>

								<rich:treeNode type="subject">
									<h:outputText value="#{subStructNode.nodeName}" style="#{subStructNode.nodeStyle}"
										title="#{subStructNode.nodeTitle}" />
									<a4j:support event="onselected"
										action="#{psrObjReestr.subjectNodeSelectAction(subStructNode)}"
										oncomplete="O$('psrObjReestrForm:createObjectListAjax').run();" />
								</rich:treeNode>
							</rich:tree>

						</rich:panel>

					</o:borderLayoutPanel>
				</h:panelGroup>


				<ui:include src="/commondata/param/objectParamEdit.xhtml">
					<ui:param name="panelHeight" value="210px" />
				</ui:include>

				<h:panelGroup id="panEditBtn">
					<table style="width: 100%; margin: 0px; padding: 0px;">
						<tr style="width: 100%; margin: 0px; padding: 0px;">
							<td style="width: 100%; margin: 0px; padding: 0px;" />
							<td><a4j:commandButton value="Сохранить" style="margin:2px 0 0 4px; padding: 0px;"
									actionListener="#{psrObjReestr.saveEditListener}" disabled="#{psrObjReestr.saveDisabled}"
									reRender="panBtnSel,panObjectBtn,parlistTree,panEditBtn,psrObjList"
									ignoreDupResponses="true" /></td>
							<td><a4j:commandButton value="Отменить" type="button" ignoreDupResponses="true"
									immediate="true" disabled="#{psrObjReestr.cancelDisabled}"
									actionListener="#{psrObjReestr.cancelEditListener}"
									style="margin:2px 0 0 4px; padding: 0px;"
									reRender="panBtnSel,panObjectBtn,parlistTree,panEditBtn,psrObjList" /></td>
						</tr>
					</table>
				</h:panelGroup>

			</o:borderLayoutPanel>

		</h:form>

		<ui:include src="/commondata/param/paramEditPanel.xhtml" />

	</ui:define>
</ui:composition>



А это темплэйт. Форма из него видна "mainMenuForm"

Код: html
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<f:view contentType="text/html" xmlns="http://www.w3.org/1999/xhtml"
	xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:f="http://java.sun.com/jsf/core"
	xmlns:h="http://java.sun.com/jsf/html" xmlns:a4j="http://richfaces.org/a4j"
	xmlns:s="http://jboss.com/products/seam/taglib" xmlns:rich="http://richfaces.org/rich">
	<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>#{kronaAppData.contextTitle}</title>
<link rel="shortcut icon" href="#{request.contextPath}/img/context/16/application.png" />
<a4j:loadStyle src="resource:///commondata/stylesheet/theme.xcss" />
<a4j:loadStyle src="/commondata/stylesheet/theme.css" />
<a4j:loadScript src="/commondata/jscript/template.js" />
</head>

<body>
	<h:form id="mainMenuForm">

		<rich:toolBar itemSeparator="line">
			<rich:toolBarGroup location="left" itemSeparator="none" style="margin:0px;padding:4px;">
				<h:graphicImage value="#{kronaAppData.contextMenuIcon}" />
				<rich:dropDownMenu value="#{kronaAppData.appName}">
					<rich:menuItem action="home" value="Начальная страница" submitMode="ajax" immediate="true"
						icon="/commondata/img/button/16/home.png" />
					<rich:menuSeparator />
					<rich:menuItem action="/secure/login.xhtml" actionListener="#{kronaUserData.loginUser}"
						value="Вход в систему" rendered="#{not identity.loggedIn}"
						icon="/commondata/img/button/16/login.png" />
					<rich:menuItem action="home" value="Выход из системы" rendered="#{identity.loggedIn}"
						icon="/commondata/img/button/16/logout.png" actionListener="#{kronaUserData.logoutUser}" />
				</rich:dropDownMenu>
			</rich:toolBarGroup>

			<rich:toolBarGroup location="left" rendered="#{identity.loggedIn}">
				<ui:include src="/layout/menu_left.xhtml" />
			</rich:toolBarGroup>

			<rich:toolBarGroup location="left" rendered="#{identity.loggedIn}">
				<ui:insert name="contextmenu" />
			</rich:toolBarGroup>

			<rich:toolBarGroup location="right" style="margin:0px;padding:4px;">
				<ui:include src="/layout/menu_right.xhtml" />

				<a4j:commandButton type="image" image="/commondata/img/button/16/help.png"
					data="#{kronaUserData.helpURL}" oncomplete="helpWindowLoad(data);" ajaxSingle="true"
					ignoreDupResponses="true" eventQueue="hlpeq" style="margin:2px;padding:0px;"
					title="Вызов справки" />
			</rich:toolBarGroup>
		</rich:toolBar>

	</h:form>

	<div class="body" style="width: auto; margin: 4px; padding: 4px;">
		<ui:insert name="body" />
		<ui:include src="/commondata/layout/tmplsubbody.xhtml" />
	</div>

	<ui:include src="/commondata/layout/tmplfooter.xhtml" />
</body>
	</html>
</f:view>



По ходу там ещё куча инклюдов.
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37933664
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Первая форма у вас прямой child от viewroot, а вторая обернута в div. Попробуйте преобразовать div в panelGroup, назначить ему айди, и поиск вести по groupid:formid

http://docs.oracle.com/javaee/6/api/javax/faces/component/UIComponentBase.html#findComponent%28java.lang.String%29
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37933797
AndreyDmt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Методом "взять измором" обнаружил необъяснимую для меня вестч.
Ну во первых проверил другие формы - там примерно такое же построение.
Всё работает. Начал разбирать неработающую - и на тебе! Если убрать кусок
Код: html
1.
2.
3.
4.
5.
6.
7.
8.
<h:selectOneMenu id="selHistObject" value="#{psrObjReestr.histObjectID}"
						valueChangeListener="#{psrObjReestr.changeHistObjectListener}"
						style="width:100%;margin:0px;padding:0px;" immediate="true"
						onchange="O$('psrObjReestrForm:createTopologyTreeAjax').run();">
						<c:forEach var="histList" items="#{psrObjReestr.histObjectList}">
							<f:selectItem itemValue="#{histList.objectID}" itemLabel="#{histList.objectName}" />
						</c:forEach>
					</h:selectOneMenu>


то всё работает замечательно. Пытался этот кусок в другие места пристроить - думал может
какая то неприязнь с соседними компонентами организовалась - всё равно не работает.
Убираю - работает. О как! Пошёл думать дальше. А может у кого мысли появились на эту конкретику?
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37933841
забыл ник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если убрать айди у селектуанменю - тоже не работает?
...
Рейтинг: 0 / 0
jsf findComponent - что могло сломаться?
    #37934678
AndreyDmt
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
забыл никЕсли убрать айди у селектуанменю - тоже не работает?
Да, не работает. Но похоже какая то ясность наступила.
1. Я ищу форму в момент инициализации - аннотация @Create на процедуре,
в которой идёт поиск. В этот момент и проявляется сей фокус. Т.е. есть на форме
selectOneMenu - форма не находится, нет - форма в списке компонентов.
Загадка, но уже как то можно объяснить.
2. Ежели после инициализации (т.е. уже по ходу работы) проверить наличие
формы, то всё нормально - вот она родимая. Вот такой нюанс на голову.
Я то хотел сразу в момент начала работы найти форму и компонент и пользовать
его по мере необходимости, а нет! Ну буду его и искать по мере необходимости.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / jsf findComponent - что могло сломаться?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]