【问题标题】:Error rich:panelMenu example showcase doesn't render错误丰富:panelMenu 示例展示不呈现
【发布时间】:2013-02-11 02:39:51
【问题描述】:

您好,我无法在 Richfaces 4.3.0.Final 展示中复制该示例: http://showcase.richfaces.org/richfaces/component-sample.jsf?demo=panelMenu&skin=blueSky 特别是在 rich:panelMenu 组件中,当我运行代码时 panelMenu 没有响应,并且 panelMenuItem 没有显示,我将代码更改如下:

<rich:panelMenu style="width:200px" itemMode="ajax" groupMode="ajax">

<rich:panelMenu style="width:200px" mode="ajax">

并且 panelMenuItems 显示并正常工作,但这部分不起作用:

<a4j:outputPanel ajaxRendered="true">
      <rich:panel rendered="#{not empty panelMenuBean.current}">
                <h:outputText value="#{panelMenuBean.current} selected" id="current" />
      </rich:panel>
 </a4j:outputPanel>

为什么?坦克。

【问题讨论】:

  • 您知道,“不起作用”并不是对问题的明确描述......另外,您所说的“panelMenu 没有响应”是什么意思?画面没有变化?至少会发出 HTTP 请求吗? (使用 Firebug 或开发者工具来检查)。尝试提供代码运行的完整上下文,以及 PanelMenuBean 中的相关代码。
  • panelMenu 没有展开,rich:panelMenuItem 组件(label="") 没有在页面中渲染。
  • 是spring,jsf,richfaces 4.3.0 最终项目,我用xhtml工作

标签: spring jsf richfaces jboss7.x


【解决方案1】:

我刚刚使用展示中完全相同的代码进行了测试(我只是复制了整个 h:form),并且运行良好。

您只需要使用current String 属性和updateCurrent 侦听器方法创建一个名为PanelMenuBean 的支持bean(根据VDL docs for panelMenu 接收itemChangeListener 属性的ItemChangeEvent):

@ManagedBean
public class PanelMenuBean {

    private String current;

    public void updateCurrent(ItemChangeEvent evt) {
        current = evt.getNewItemName();
    }

    // getter and setter ...
}

【讨论】:

  • span class="comcopy">同样,panelmenu 没有展开,这是一个spring 应用程序,也许是我放置managebean 的路径? (src/main/java/--com.xxx.xxx.common)
  • 事实上,我也在 Spring 应用程序中对其进行了测试,但这不重要,因为代码不使用 Spring 特性。放置托管 bean 的路径也无关紧要。您是否在一个全新的项目中尝试它?因为如果不是,我会推荐它,你可能会遗漏与 RichFaces 无关的其他内容。
  • 我尝试了一个在 eclipse 中创建的全新项目,它可以工作,但我的应用程序使用 myfaces 2.1.10 for JSF
  • 好吧,让全新的项目使用其他应用程序正在使用的相同 JAR,以便您可以正确比较它们。如果您先用 Mojarra 测试它,然后再用 MyFaces 测试它,并且它适用于其中一个而不适用于另一个,则更容易找出问题所在。但如果两者都适用,那么问题可能出在您的应用程序中。
猜你喜欢
  • 2014-03-12
  • 1970-01-01
  • 1970-01-01
  • 2011-01-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多