我需要在页面的一列中呈现相应年份的总价值,但是有问题。我有一个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>