如何从subtable primefaces渲染字段

时间:2014-10-23 12:27:04

标签: java jsf-2 primefaces

我需要在页面的一列中呈现相应年份的总价值,但是有问题。我有一个VO类,其内部有一个List个相应的VO类(一个镜像)。在List个VO类中,我有两条记录,其中第一条记录在字段中具有总值,第二条记录在字段中没有值。

在渲染我的页面时,子表格显示第二条记录的值。

以下是我的VO。问题出在subPerfil.totalPorAno4

public class PerfilFinanceiroRelatorioVO implements Serializable{

private static final long serialVersionUID = 1L;

private String nomeRazao;
private int anoUm;
private int anoDois;
private int anoTres;
private int anoQuatro;
private int anoCinco;
private double valor;
private double percentual;
private double totalPorAno;
private double totalPorAno2;
private double totalPorAno3;
private double totalPorAno4;
private double totalPorAno5;
private double totalPorRazao;
private List<PerfilFinanceiroRelatorioVO> listaVO;


public String getNomeRazao() {
    return nomeRazao;
}
public void setNomeRazao(String nomeRazao) {
    this.nomeRazao = nomeRazao;
}
public int getAnoUm() {
    return anoUm;
}
public void setAnoUm(int anoUm) {
    this.anoUm = anoUm;
}
public int getAnoDois() {
    return anoDois;
}
public void setAnoDois(int anoDois) {
    this.anoDois = anoDois;
}
public int getAnoTres() {
    return anoTres;
}
public void setAnoTres(int anoTres) {
    this.anoTres = anoTres;
}
public int getAnoQuatro() {
    return anoQuatro;
}
public void setAnoQuatro(int anoQuatro) {
    this.anoQuatro = anoQuatro;
}
public int getAnoCinco() {
    return anoCinco;
}
public void setAnoCinco(int anoCinco) {
    this.anoCinco = anoCinco;
}
public double getValor() {
    return valor;
}

public void setValor(double valor) {
    this.valor = valor;
}

public double getPercentual() {
    return percentual;
}
public void setPercentual(double percentual) {
    this.percentual = percentual;
}
public double getTotalPorAno() {
    return totalPorAno;
}
public void setTotalPorAno(double totalPorAno) {
    this.totalPorAno = totalPorAno;
}
public double getTotalPorAno2() {
    return totalPorAno2;
}



public void setTotalPorAno2(double totalPorAno2) {
    this.totalPorAno2 = totalPorAno2;
}



public double getTotalPorAno3() {
    return totalPorAno3;
}



public void setTotalPorAno3(double totalPorAno3) {
    this.totalPorAno3 = totalPorAno3;
}



public double getTotalPorAno4() {
    return totalPorAno4;
}



public void setTotalPorAno4(double totalPorAno4) {
    this.totalPorAno4 = totalPorAno4;
}



public double getTotalPorAno5() {
    return totalPorAno5;
}



public void setTotalPorAno5(double totalPorAno5) {
    this.totalPorAno5 = totalPorAno5;
}



public double getTotalPorRazao() {
    return totalPorRazao;
}
public void setTotalPorRazao(double totalPorRazao) {
    this.totalPorRazao = totalPorRazao;
}
public List<PerfilFinanceiroRelatorioVO> getListaVO() {
    return listaVO;
}
public void setListaVO(List<PerfilFinanceiroRelatorioVO> listaVO) {
    this.listaVO = listaVO;
}

我的.xhtml页面:

<ui:composition xmlns="http://www.w3.org/1999/xhtml" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:p="http://primefaces.org/ui" xmlns:ui="http://java.sun.com/jsf/facelets">

  <body>
    <div id="menuCentral" layout="block">

      <div style="min-width: 800px;" layout="block">
        <h:panelGrid border="0" cellspacing="10" columns="1">

          <h:outputText value="#{perfilFinanceiroBean.praticaSelecionada.id.nuPratica} - #{perfilFinanceiroBean.praticaSelecionada.noPratica}" style="color:#333;" />
          </h:panelGroup>
        </h:panelGrid>
        <div id="divTabelaImprimir">
          <h:form>

            <p:dataTable style="" var="perfil" value="#{perfilFinanceiroBean.listaFinanceiraRelatorio}">


              <p:subTable var="subPerfil" value="#{perfil.listaVO}">

                <f:facet name="header">

                  <tr class="ui-widget-header" style="border-radius: 10px 0px 0px 0px;" width="100">

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{mensagens['display.razao.social']}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{perfil.anoUm}" rendered="#{perfil.anoUm ne '0'}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{perfil.anoDois}" rendered="#{perfil.anoDois ne '0'}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{perfil.anoTres}" rendered="#{perfil.anoTres ne '0'}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{perfil.anoQuatro}" rendered="#{perfil.anoQuatro ne '0'}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{perfil.anoCinco}" rendered="#{perfil.anoCinco ne '0'}" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="%" />
                    </td>

                    <td width="100" class="ui-state-default" style="border-radius: 0px 0px 0px 0px;">
                      <h:outputText value="#{mensagens['display.valor.totalrazao']}" />
                    </td>

                  </tr>
                </f:facet>

                <p:column>
                  <h:outputText value="#{subPerfil.nomeRazao}" />
                </p:column>

                <p:column headerText="ano 1">
                  <h:outputText value="#{subPerfil.anoUm}" rendered="#{subPerfil.anoUm ne '0'}">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:column headerText="ano 2">
                  <h:outputText value="#{subPerfil.anoDois}" rendered="#{subPerfil.anoDois ne '0'}">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:column headerText="ano 3">
                  <h:outputText value="#{subPerfil.anoTres}" rendered="#{subPerfil.anoTres ne '0'}">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:column headerText="ano 4">
                  <h:outputText value="#{subPerfil.anoQuatro}" rendered="#{subPerfil.anoQuatro ne '0'}">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:column headerText="ano 5">
                  <h:outputText value="#{subPerfil.anoCinco}" rendered="#{subPerfil.anoCinco ne '0' }">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:column headerText="percentual">
                  <h:outputText value="#{subPerfil.percentual}" rendered="#{subPerfil.percentual ne '0' }">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>


                <p:column headerText="totalrazao">
                  <h:outputText value="#{subPerfil.totalPorRazao}" rendered="#{subPerfil.totalPorRazao ne '0' }">
                    <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                  </h:outputText>
                </p:column>

                <p:columnGroup type="footer">
                  <p:row>
                    <p:column footerText="Total Geral" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="Total Geral" />
                      </f:facet>
                    </p:column>

                    <p:column footerText="totano1" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="#{subPerfil.totalPorAno}" rendered="#{subPerfil.totalPorAno ne '0' }">
                          <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                        </h:outputText>
                      </f:facet>
                    </p:column>

                    <p:column footerText="totano2" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="#{subPerfil.totalPorAno2}" rendered="#{subPerfil.totalPorAno2 ne '0' }">
                          <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                        </h:outputText>
                      </f:facet>
                    </p:column>

                    <p:column footerText="totano3" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="#{subPerfil.totalPorAno3}" rendered="#{subPerfil.totalPorAno3 ne '0' }">
                          <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                        </h:outputText>
                      </f:facet>
                    </p:column>

                    <p:column footerText="totano4" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="#{subPerfil.totalPorAno4}" rendered="#{subPerfil.totalPorAno4 ne '0' }">
                          <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                        </h:outputText>
                      </f:facet>
                    </p:column>

                    <p:column footerText="totano5" width="100" style="border-radius: 0px 0px 0px 0px;">
                      <f:facet name="footer">
                        <h:outputText value="#{subPerfil.totalPorAno5}" rendered="#{subPerfil.totalPorAno5 ne '0' }">
                          <f:convertNumber pattern="#0.00" maxFractionDigits="2" />
                        </h:outputText>
                      </f:facet>
                    </p:column>
                  </p:row>
                </p:columnGroup>


              </p:subTable>

            </p:dataTable>
          </h:form>
        </div>

        <h:panelGrid border="0" cellspacing="0" columns="2">
          <h:commandLink action="#{perfilFinanceiroBean.salvar()}" id="bt_imprimir" class="btnLaranjaFiltro marginTop" title="#{mensagens['mensagem.hint.mh020']}  ">
            <p:printer target="imprimePopUp" />
            <span><h:outputText value="#{mensagens['display.imprimir']}" /></span>
          </h:commandLink>
          <h:commandLink onclick="impressao.hide();" id="bt_fechar" class="btnLaranjaFiltro marginTop" title="#{mensagens['mensagem.hint.mh020']} ">
            <span><h:outputText value="#{mensagens['display.fechar']}" /></span>
          </h:commandLink>
        </h:panelGrid>
      </div>

    </div>
  </body>
</ui:composition>

0 个答案:

没有答案