Параметр управления компонентом всплывающей подсказки Richfaces

У меня есть таблица, в которой каждый щелчок по ячейке открывает всплывающую подсказку с использованием тега componentControl, это работает. Но я хотел передать параметр всплывающей подсказке, который отличается для каждой ячейки таблицы.

<rich:toolTip id="tooltip" attached="false" mode="ajax">
 <ui:include id="projectDetailInclude" src="projectDetail.xhtml">
   <ui:param name="projectDetail" value="#{projectBean.getProjectDetail(project, index)}" />
 </ui:include>
</rich:toolTip>
<rich:dataTable id="detailDataTable" var="row" value="#{projectBean.projects}">
 <rich:column id="rowLabelColumn">
  <h:outputText value="#{row.label}" />
 </rich:column>
 <rich:columns id="detailColumns" var="column" value="#{projectBean.columns}" index="index" >
  <f:facet name="header">
   <h:outputText value="#{column}" />
  </f:facet>
  <div id="projectDetailBlock" class="#{row.values[index]}">
   <rich:componentControl event="onclick" for="tooltip" operation="show">
    <f:param name="project" value="#{project}" />
    <f:param name="index" value="#{index}" />
   </rich:componentControl>
  </div>
 </rich:columns>
</rich:dataTable>

В приведенном выше коде я пытаюсь передать параметры проекта и индекса. Все, что я получаю, это хорошая трассировка стека. (который исчезает при удалении параметров в теге componentControl).

java.lang.StackOverflowError
 java.lang.reflect.InvocationTargetException.<init>(InvocationTargetException.java:54)
 sun.reflect.GeneratedMethodAccessor208.invoke(Unknown Source)
 sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
 java.lang.reflect.Method.invoke(Method.java:597)
 org.apache.commons.beanutils.PropertyUtilsBean.invokeMethod(PropertyUtilsBean.java:1773)
 org.apache.commons.beanutils.PropertyUtilsBean.getSimpleProperty(PropertyUtilsBean.java:1132)
 org.apache.commons.beanutils.PropertyUtilsBean.getNestedProperty(PropertyUtilsBean.java:686)
 org.apache.commons.beanutils.PropertyUtilsBean.getProperty(PropertyUtilsBean.java:715)
 org.apache.commons.beanutils.PropertyUtils.getProperty(PropertyUtils.java:290)
 org.ajax4jsf.javascript.ScriptUtils.writeScriptToStream(ScriptUtils.java:168)
 org.ajax4jsf.javascript.ScriptUtils.writeScriptToStream(ScriptUtils.java:174)
 org.ajax4jsf.javascript.ScriptUtils.writeScriptToStream(ScriptUtils.java:83)

person Jurgen Hannaert    schedule 20.01.2010    source источник
comment
является индексным свойством класса datatable var?   -  person besc    schedule 16.09.2011


Ответы (1)


Похожий случай описан в демонстрационном примере RichFaces, поэтому он должен работать: http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=componentControl

Однако целью управления вашим компонентом является метод show файла tooltip.js компонент js. Единственный параметр, который принимает метод show, — это параметр события, поэтому ваши f:param делают не то, что вы думаете.

Несмотря на это, вам не нужны параметры в вашем componentControl, EL в атрибуте value вашего ui:param должен правильно оцениваться для каждой строки. Что произойдет, если вы попробуете приведенный выше код без этих f:param?

person Brian Leathem    schedule 12.06.2013