Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
List 在JSF2.2中用列表填充数据表_List_Jsf_Datatable - Fatal编程技术网

List 在JSF2.2中用列表填充数据表

List 在JSF2.2中用列表填充数据表,list,jsf,datatable,List,Jsf,Datatable,我试图复制本指南,但使用jsf 2.2: 我当前的设置:名为Message的类包含日期、字符串和名为“name”(其所有者)的帐户对象。MessageBean类有一个列表对象messageSet,它在MessageBean构造函数中初始化。JSF页面用messageList填充一个表。然而,这张桌子并没有被填满。在调试器中查看列表对象时,它确实会被有效的消息对象填充。我的班级: @命名(value=“messageBean”) @会议范围 公共类MessageBean实现了可序列化 { 私有列

我试图复制本指南,但使用jsf 2.2:

我当前的设置:名为Message的类包含日期、字符串和名为“name”(其所有者)的帐户对象。MessageBean类有一个列表对象messageSet,它在MessageBean构造函数中初始化。JSF页面用messageList填充一个表。然而,这张桌子并没有被填满。在调试器中查看列表对象时,它确实会被有效的消息对象填充。我的班级: @命名(value=“messageBean”) @会议范围 公共类MessageBean实现了可序列化 { 私有列表消息集

public MessageBean()
{
    this.messageSet = Controller.Controller.getLatestKweks();

}

public List<Message> getMessageSet()
{
    return messageSet;
}

public void setMessageSet(List<Message> messageSet)
{
    this.messageSet = messageSet;
}
}
组件树:

 <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>

有人知道为什么该表无法填充吗?

您的Hibernate/JPA查询已中断。
getLatestKweks()
后面的代码实际上返回的是一个
列表,而不是
列表

证据在堆栈跟踪中:

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)
    ...
mesDate
的基(因此,
{mes}
)表示类似
对象[]的数组时,
ArrayELResolver
仅涉及
不是像
消息那样的javabean。EL正在尝试使用
mesDate
通过索引获取数组项,对于第一个项,它只能是一个类似so
{mes[0]}
的整数。但是,字符串值
“mesDate”
不能作为整数解析,因此出现此异常

您有两个选项来解决此问题:

  • 更改代码以获得
    列表
    。例如使用
    {mes[0]}
    {mes[1]}
  • 修复Hibernate/JPA查询以返回真实的
    列表
    。将
    Message.class
    指定为类型
另见:

R如果您有任何错误,请原谅我的错误,我已经添加了尝试访问页面时遇到的异常。
 <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 [ ] 
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)
    ...