gpt4 book ai didi

jsf - 无法解析为 的成员

转载 作者:行者123 更新时间:2023-12-04 04:39:33 24 4
gpt4 key购买 nike

我有一个 bean :

package controller.types;

import java.util.ArrayList;
import java.util.List;

import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;

@ManagedBean
@SessionScoped
public class Test
{

static List<MainTableRow> rows;

public Test()
{
rows = new ArrayList<>();
}

public static List<MainTableRow> getRows()
{
return rows;
}

public static void setRows(List<MainTableRow> rows)
{
Test.rows = rows;
}

}

我的 xhtml 页面是:
    <h:form>
<p:fileUpload
fileUploadListener="#{fileUploadController.handleFileUpload}"
mode="advanced" dragDropSupport="false" update="messages"
sizeLimit="10000000" fileLimit="3" allowTypes="/(\.|\/)(xls)$/" style="font-size: 14px"/>

<p:growl id="messages" showDetail="true" />

<p:dataTable id="dataTable" var="mainTableRow" value="#{test.rows}" style="font-size: 14px">
<f:facet name="header">
Main Table
</f:facet>

<p:column sortBy="" headerText="Index">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="Query">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="S1">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="S2">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="S3">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="S9">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="Uygunluk">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="Kural">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="Kaynak">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="Query Type">
<h:outputText value="#{mainTableRow.index}" />
</p:column>
<p:column sortBy="" headerText="User Intent">
<h:outputText value="#{mainTableRow.index}" />
</p:column>

</p:dataTable>

</h:form>

在线 <p:dataTable id="dataTable" var="mainTableRow" value="#{test.rows}" style="font-size: 14px">它给出了错误:

无法将行解析为测试成员

原因是什么?

最佳答案

为完整起见,the documentation for managed beans声明以下 bean 属性

As with all JavaBeans components, a property consists of a private data field and a set of accessor methods, as shown by this code:


private Integer userNumber = null;
...
public void setUserNumber(Integer user_number) {
userNumber = user_number;
}
public Integer getUserNumber() {
return userNumber;
}

在您的情况下,您使用静态方法作为访问器/修改器。这是行不通的,因为这些方法不是对象(bean)的成员,它们是类的成员。应用程序将无法将它们解析为您 test 的成员。 bean 。

解决方案是修改您的类,以便您不再使用 static领域和方法。
@ManagedBean
@SessionScoped
public class Test
{

List<MainTableRow> rows;

public Test()
{
rows = new ArrayList<>();
}

public List<MainTableRow> getRows()
{
return rows;
}

public void setRows(List<MainTableRow> rows)
{
this.rows = rows;
}

}

关于jsf - <attribute> 无法解析为 <bean> 的成员,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19139211/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com