【发布时间】:2012-09-06 10:34:03
【问题描述】:
我可以成功构建以下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 是 ispra.Questionario 类型的托管 bean。
有什么想法吗?
代码sn-p:
@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 类具有testo 和domanda 属性; Domanda 类具有 testo 属性。
【问题讨论】:
-
您可以发布托管 bean 吗?
getDomanda()是托管 bean 上的方法吗?另外,您使用的是哪个 JSP 容器版本?在 EL 中使用参数调用方法是在 JSP 2.2 中引入的。也许这是个问题?
标签: jsf primefaces