【问题标题】:Why is my rich:dataTable not rendering?为什么我的 rich:dataTable 不呈现?
【发布时间】:2012-03-21 19:38:14
【问题描述】:

我无法弄清楚为什么我的 rich:dataTable 没有呈现。我正在使用 JSF 2 和 Richfaces 4。URL 是 http://localhost:8080/contacts-as7/me2.jsf?sitecode=0Z56,但没有站点代码参数时它的行为相同。

这里是风景

<!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:ui="http://java.sun.com/jsf/facelets"
  xmlns:h="http://java.sun.com/jsf/html"
  xmlns:f="http://java.sun.com/jsf/core"
  xmlns:rich="http://richfaces.org/rich"
  xmlns:a4j="http://richfaces.org/a4j">

<h:head>
  <title>contacts</title>
</h:head>

<f:metadata>
  <f:viewParam name="sitecode" value="#{contactView.siteCode}" />
  <f:event listener="#{contactView.retrieve056}" type="preRenderView"></f:event>
</f:metadata>

<h:form>
  <h:messages />

  <rich:panel rendered="#{not empty contactView.doors}">
    <f:facet name="header">
      <h:outputText value="Site Code #{contactView.doors.siteCode}" />
    </f:facet>
    <h:panelGrid columns="1">
      <h:outputText
        value="Report corrections to your DOORS administrator" />
      <h:outputText id="nm1" value="#{contactView.doors.name}" />
      <h:outputText id="pgr1" value="#{contactView.doors.pager}" />
      <h:outputText id="adr1" value="#{contactView.doors.addr1}" />
      <h:outputText id="adr2" value="#{contactView.doors.addr2}"
        rendered="#{not empty contactView.doors.addr2}" />
      <h:outputText id="csz"
        value="#{contactView.doors.city}, #{contactView.doors.state} #{contactView.doors.zip}" />
    </h:panelGrid>
  </rich:panel>

  <rich:dataTable value="#{contactView.doors.alternateList}" var="_xyz">
    <h:panelGrid columns="1">
      <h:outputText id="nm11" value="#{_xyz.name}" />
      <h:outputText id="pgr11" value="#{_xyz.phone}" />
      <h:outputText id="adr11" value="#{_xyz.pager}" />
      <h:outputText id="adr21" value="#{_xyz.comment}" />
    </h:panelGrid>
  </rich:dataTable>

</h:form>

</html>

这是我的视图 bean

@Named
@ViewScoped
public class ContactView implements Serializable {

    public ContactView() {
    }

    @EJB
    ContactService contactService;

    private String siteCode;
    private Doors doors;
    private AlternateContact alternateContact;


    public String retrieve056() {
        System.out.println("RETRIEVE");
        this.doors = this.contactService.findDoors("0Z56");
        System.out.println("doors_id is "+ doors.getDoorsId());
        for ( AlternateContact alt : doors.getAlternateList() ){
            System.out.println("alt name "+ alt.getName());
        }
        return "me2.jsf?sitecode=0Z56&faces-redirect=true";
    }

}

这里是控制台上的输出——doors.getAlternateList() 肯定是填充的。

15:30:58,382 INFO  [stdout] (http-localhost-127.0.0.1-8080-3) alt name Thomas Cahill

15:30:58,392 INFO  [stdout] (http-localhost-127.0.0.1-8080-3) alt name Micahel Henry

但它并没有出现在我的视野中!我整天都在看这个,我很绝望。有任何想法吗?它在过去几天的某个时间点工作,但我不知道我是如何打破它的,因为我正在处理其他事情。

TDR

【问题讨论】:

    标签: jsf-2 richfaces


    【解决方案1】:

    当使用 dataTable 时,你应该使用 rich:column 或 rich:columnGroup

    尝试使用&lt;rich:dataGrid&gt; 而不是&lt;rich:dataTable&gt;

    看看rich:dataGrid...

    问候

    【讨论】:

    • 哦,呵呵!我知道它必须像错字一样简单。当然使用 dataGrid 修复它。我确信使用 rich:column 也可以。
    【解决方案2】:

    您是否包含了所有与richfaces 一起使用的commons*.jar?没有它就不会渲染。

    【讨论】:

      猜你喜欢
      • 2011-01-10
      • 1970-01-01
      • 1970-01-01
      • 2011-11-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-08
      • 1970-01-01
      • 2011-11-25
      相关资源
      最近更新 更多