【问题标题】:Richfaces tooltip componentcontrol paramRichfaces 工具提示组件控制参数
【发布时间】:2011-01-07 07:13:03
【问题描述】:

我有一个表格,其中每个单元格单击都会使用 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)

【问题讨论】:

  • 是datatable var类的索引属性吗?

标签: jsf richfaces tooltip param


【解决方案1】:

RichFaces 展示示例中涵盖了一个类似的案例,因此它应该可以工作: http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=componentControl

但是你的组件控件的目标是tooltip.js组件js的show方法。 show 方法采用的唯一参数是事件参数,因此您的 f:params 并没有按照您的想法行事。

无论如何,您不需要您的 componentControl 中的参数,ui:paramvalue 属性中的 EL 应该为每一行正确评估。如果你在没有f:params 的情况下尝试上面的代码会发生什么?

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 2012-04-03
    • 1970-01-01
    • 1970-01-01
    • 2018-01-11
    • 1970-01-01
    • 1970-01-01
    • 2016-03-06
    • 1970-01-01
    相关资源
    最近更新 更多