JSF数据表不会显示值

JSF数据表不会显示值,jsf,primefaces,datatable,Jsf,Primefaces,Datatable,我在xhtml页面中有一个。该表不会显示支持bean的值。我已经调试到我知道bean的getter正在被调用的程度,我也知道这个bean中有一些项。你知道为什么会这样吗?Netbeans 7.3、JSF2.2、Tomcat 7、jdk1.7、primefaces 4.0 这是我的桌子,它在一个叫做“mainForm”的表格里 <p:dataTable id="DTsamples" widgetVar="DTsamplesVw" var="sample" value="#{alterSamp

我在
xhtml
页面中有一个
。该表不会显示支持bean的值。我已经调试到我知道bean的getter正在被调用的程度,我也知道这个bean中有一些项。你知道为什么会这样吗?Netbeans 7.3、JSF2.2、Tomcat 7、jdk1.7、primefaces 4.0

这是我的桌子,它在一个叫做“mainForm”的表格里

<p:dataTable id="DTsamples" widgetVar="DTsamplesVw" var="sample" value="#{alterSampleController.samples}" 
                             filteredValue="#{alterSampleController.filteredSamples}" paginator="true" rows="20"
                             sortMode="multiple" scrollable="true" rowStyleClass="#{sample.rowColorByType}">

<p:column headerText="Lab Number" footerText="Lab Number" sortBy="labNumber" filterMatchMode="contains" filterBy="labNumber" filterMaxLength="20">  
                        #{sample.labNumber}                            
</p:column> 

<p:column headerText="Container ID" footerText="Container ID" sortBy="containerID" filterMatchMode="contains" filterBy="containerID" filterMaxLength="11">  
                        #{sample.containerID}                            
</p:column> 

<p:column headerText="Sample Type" footerText="Sample Type" sortBy="sampleType" filterMatchMode="contains" filterBy="sampleType" filterMaxLength="50">  
                        #{sample.sampleType}
</p:column> 

<p:column headerText="Field ID" footerText="Field ID" sortBy="fieldID" filterMatchMode="contains" filterBy="fieldID" filterMaxLength="150">  
                        #{sample.fieldID}
</p:column>

<p:column headerText="Sample ID" footerText="Sample ID" sortBy="sampleID" filterMatchMode="contains" filterBy="sampleID" filterMaxLength="150">  
                        #{sample.sampleID}
</p:column>

<p:column headerText="Grower" footerText="Grower" sortBy="grower" filterMatchMode="contains" filterBy="grower" filterMaxLength="50">  
                        #{sample.grower}
</p:column>

~~~A few other columns that don't contain data~~~~

</p:dataTable>

#{sample.labNumber}
#{sample.containerID}
#{sample.sampleType}
#{sample.fieldID}
#{sample.sampleID}
#{sample.grower}
~~~其他一些不包含数据的列~~~~
下面是一个对话框,用于获取搜索结果

<h:form id="innerSearch"><p:dialog id="searchDialogID" widgetVar="searchDialog" header="Sample search" resizable="false" draggable="false" showEffect="puff"
                      hideEffect="puff" appendToBody="false" modal="true" rendered="#{alterSampleController.allowReading eq true}">

~~~Bunch of inputTexts and selectoneMenus to get search details                

<p:commandButton update=":mainForm" process="innerSearch" icon="ui-icon-search" value="Search" actionListener="#{alterSampleController.loadSearch}" oncomplete="searchDialog.hide()"/>

</p:dialog>
</h:form>

~~~一堆InputExt和SelectOneMenu可获取搜索详细信息
相关支持Bean

@ManagedBean
@ViewScoped


public class AlterSampleController implements Serializable {    
private ArrayList<SampleAlter> _samples;
 private ArrayList<SampleAlter> _filteredSamples;

public void loadSearch() {
    UIComponent table = FacesContext.getCurrentInstance().getViewRoot().findComponent(":mainForm:DTsamples");
    table.setValueExpression("sortBy", null);
    if (_samples != null) {
        _samples.clear();
    }
    _samples = _saHelper.searchList(getSearch());


    }
    getAgronomers().clear();
    getGrowers().clear();
}
    public ArrayList<SampleAlter> getSamples() {
    return _samples;
}
    public ArrayList<SampleAlter> getFilteredSamples() {
    return _filteredSamples;
}


public void setFilteredSamples(ArrayList<SampleAlter> filteredSamples) {
    this._filteredSamples = filteredSamples;
}
}
@ManagedBean
@视域
公共类AlterSampleController实现可序列化{
私有ArrayList_样本;
私有ArrayList_filteredSamples;
公共void loadSearch(){
UIComponent table=FacesContext.getCurrentInstance().getViewRoot().findComponent(“:mainForm:DTsamples”);
table.setValueExpression(“sortBy”,null);
如果(_samples!=null){
_示例。清除();
}
_samples=_saHelper.searchList(getSearch());
}
getAgronomers().clear();
getGrowers().clear();
}
公共ArrayList getSamples(){
退回样品;
}
公共阵列列表getFilteredSamples(){
返回过滤样本;
}
public void setFilteredSamples(ArrayList filteredSamples){
这._filteredSamples=filteredSamples;
}
}

我当时正在使用netbeans 7.3并选择更新netbeans。我知道这通常不会对守则产生任何影响,但它确实产生了影响;在我更新之前,一切都很好。我必须完全卸载并重新安装netbeans。我不认为这是一个解决方案,但如果其他运行7.3的人执行了最近的更新,并且所有东西都停止工作,请尝试执行完整的卸载并重新安装。

属性alterSampleController.filteredSamples是否存在?@JaqenH'ghar是的,我编辑了代码,现在就显示出来了。只是一些建议:确保你没有嵌套表单(id表示你是…)。尝试将表单放入对话框中,我相信这通常是推荐的。尝试使用appendToBody=“true”@JaqenH'ghar无嵌套表单,尝试appendToBody=“true”并切换对话框和表单,但仍然无效。通常使用process=“@form”而不是process=“innerSearch”,但这可能没有什么区别。对不起,我没有主意了