【发布时间】:2013-11-01 20:38:08
【问题描述】:
我正在尝试使用 jsf 2.2 复制本指南:
http://www.mkyong.com/jsf2/jsf-2-datatable-example/
我当前的设置:一个名为 Message 的类包含一个日期、字符串和一个名为“name”的帐户对象(它的所有者)。 MessageBean 类有一个 List 对象 messageSet,它在 MessageBean 构造函数中被初始化。 JSF 页面使用 messageList 填充表。但是,表格没有填满。在调试器中查看列表对象时,它确实充满了有效的消息对象。我的课程: @Named(value = "messageBean") @SessionScoped 公共类 MessageBean 实现 Serializable { 私有列表消息集;
public MessageBean()
{
this.messageSet = Controller.Controller.getLatestKweks();
}
public List<Message> getMessageSet()
{
return messageSet;
}
public void setMessageSet(List<Message> messageSet)
{
this.messageSet = messageSet;
}
}
JSF 页面:
<h:dataTable value="#{messageBean.messageSet}" var="mes">
<h:column>
<f:facet name="header">Date</f:facet>
#{mes.mesDate}
</h:column>
<h:column>
<f:facet name="header">Naam</f:facet>
#{mes.name.accountName}
</h:column>
<h:column>
<f:facet name="header">Content</f:facet>
#{mes.Content}
</h:column>
</h:dataTable>
还有第二个 Message 对象,它是一个 Hibernate 对象,其中只有 getter 和 setter。
这是我尝试访问此页面时的堆栈跟踪:
java.lang.NumberFormatException: For input string: "mesDate"
at java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)
at java.lang.Integer.parseInt(Integer.java:492)
at java.lang.Integer.parseInt(Integer.java:527)
at javax.el.ArrayELResolver.toInteger(ArrayELResolver.java:378)
at javax.el.ArrayELResolver.getValue(ArrayELResolver.java:198)
at com.sun.faces.el.DemuxCompositeELResolver._getValue(DemuxCompositeELResolver.java:176)
at com.sun.faces.el.DemuxCompositeELResolver.getValue(DemuxCompositeELResolver.java:203)
at com.sun.el.parser.AstValue.getValue(AstValue.java:140)
at com.sun.el.parser.AstValue.getValue(AstValue.java:204)
at com.sun.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:226)
at org.jboss.weld.el.WeldValueExpression.getValue(WeldValueExpression.java:50)
at com.sun.faces.facelets.el.ELText$ELTextVariable.writeText(ELText.java:227)
at com.sun.faces.facelets.el.ELText$ELTextComposite.writeText(ELText.java:150)
at com.sun.faces.facelets.compiler.TextInstruction.write(TextInstruction.java:85)
at com.sun.faces.facelets.compiler.UIInstructions.encodeBegin(UIInstructions.java:82)
at com.sun.faces.renderkit.html_basic.HtmlBasicRenderer.encodeRecursive(HtmlBasicRenderer.java:302)
at com.sun.faces.renderkit.html_basic.TableRenderer.renderRow(TableRenderer.java:385)
at com.sun.faces.renderkit.html_basic.TableRenderer.encodeChildren(TableRenderer.java:162)
at javax.faces.component.UIComponentBase.encodeChildren(UIComponentBase.java:894)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1856)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at javax.faces.component.UIComponent.encodeAll(UIComponent.java:1859)
at com.sun.faces.application.view.FaceletViewHandlingStrategy.renderView(FaceletViewHandlingStrategy.java:443)
at com.sun.faces.application.view.MultiViewHandler.renderView(MultiViewHandler.java:131)
at javax.faces.application.ViewHandlerWrapper.renderView(ViewHandlerWrapper.java:337)
at com.sun.faces.lifecycle.RenderResponsePhase.execute(RenderResponsePhase.java:120)
at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101)
at com.sun.faces.lifecycle.LifecycleImpl.render(LifecycleImpl.java:219)
at javax.faces.webapp.FacesServlet.service(FacesServlet.java:647)
at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:357)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:260)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:188)
at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:191)
at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:168)
at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:189)
at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:288)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:206)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:136)
at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:114)
at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:838)
at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:113)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:115)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:55)
at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:135)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:564)
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:544)
at java.lang.Thread.run(Thread.java:724)
组件树:
<UIViewRoot id="j_id1" inView="true" locale="en_GB" renderKitId="HTML_BASIC" rendered="true" transient="false" viewId="/hoofdpagina.xhtml">
<html xmlns="http://www.w3.org/1999/xhtml">
<UIOutput id="j_idt2" inView="true" rendered="true" transient="false">
<title>Main page</title>
</UIOutput>
<UIOutput id="j_idt4" inView="true" rendered="true" transient="false">
<div id="menu">top</div> <div id="currentMessages">
<HtmlDataTable border="-2147483648" first="0" id="j_idt6" inView="true" rendered="true" rowIndex="0" rowStatePreserved="false" rows="0" transient="false" var="mes">
<UIColumn header="Datum" id="j_idt7" inView="true" rendered="true" transient="false">
header
Date
#{mes.mesDate}
</UIColumn>
<UIColumn header="Name" id="j_idt10" inView="true" rendered="true" transient="false">
header
Name
#{mes.name.accountName}
</UIColumn>
<UIColumn header="Inhoud" id="j_idt13" inView="true" rendered="true" transient="false">
header
Content
#{mes.mesContent}
</UIColumn>
</HtmlDataTable>
</div>
</UIOutput>
</html>
</UIViewRoot>
以及作用域变量:
Name Value
j_idt6 j_idt6
j_idt6:j_idt10 bread
j_idt6:j_idt12 Log in
j_idt6:j_idt8 Donald
AttributesName Value
None
Request AttributesName Value
kwek [Ljava.lang.Object;@a5c775c
Flash AttributesName Value
None
Session AttributesName Value
None
Application AttributesName Value
csfcff [ ]
有人知道为什么表格无法填满吗?
【问题讨论】:
-
你遇到任何错误
-
抱歉我的错误,我添加了我尝试访问该页面时遇到的异常。