0

我可以成功构建以下内容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>

domande是类型的托管 bean ispra.Questionario

有任何想法吗?

代码片段:

@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属性。

4

2 回答 2

2

这似乎是PrimeFaces中的一个错误,他们(出于某种原因)无法修复。我建议你使用PrimeFaces Extensions exporter。这为我解决了这个问题。

于 2013-06-28T06:10:29.317 回答
0

getDomanda 函数在做什么?看起来您将 Domanda 对象放入其中并返回一个 Domanda 对象?

试试这个:

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

然后导出功能将起作用

于 2012-09-06T14:46:13.633 回答