primefaces dataExporter EL异常

时间:2012-09-06 10:34:03

标签: jsf primefaces

我可以成功构建以下p:dataTable

<p:dataTable id="questionario" var="risp" value="#{domande.elencoRisposte}" >  
        <f:facet name="header">
                Questionario di #{userBean.nome} #{userBean.cognome}
        </f:facet>
        <p:column>    
                <f:facet name="header">
                        <h:outputText value="Domanda" />
                </f:facet>
                <h:outputText value="#{domande.getDomanda(risp.domanda).testo}" />
        </p:column>
        <p:column>
                <f:facet name="header">
                        <h:outputText value="Risposta" />
                </f:facet>
                <h:outputText value="#{risp.testo}" />
        </p:column>
</p:dataTable>

但我得到例外:

javax.servlet.ServletException: javax.el.PropertyNotFoundException: Property 'getDomanda' not found on type ispra.Questionario
    javax.faces.webapp.FacesServlet.service(FacesServlet.java:229)

当我尝试使用p:dataExporter组件导出时:

<h:commandLink>
    <p:graphicImage value="pdf.png" />
    <p:dataExporter type="pdf" target="questionario" fileName="questionario" />
</h:commandLink>

domandeispra.Questionario类型的托管bean。

有什么想法吗?

代码段:

@ManagedBean(name="domande") 
@SessionScoped 

public class Questionario { 
    private ArrayList<Domanda> elencoDomande; 
    private LinkedHashMap<String,Risposta> risposte; 

    ...

    public Domanda getDomanda(String codice) { 
        return setDomande.get(codice); 
    } 

    public ArrayList<Risposta> getElencoRisposte() { 
        return new ArrayList<Risposta>(this.risposte.values()); 
    }

    ...

} 

Risposta类具有testodomanda属性; Domanda类具有testo属性。

2 个答案:

答案 0 :(得分:2)

这似乎是bug in PrimeFaces他们(出于某种原因)无法修复。 我建议你使用PrimeFaces Extensions exporter。这解决了我的问题。

答案 1 :(得分:0)

getDomanda函数在做什么?看起来你把你的Domanda对象放进来它会返回一个Domanda对象吗?

试试这个:

<h:outputText value="#{risp.domanda.testo}" />

然后导出功能将起作用