Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jsf-2/2.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
Jsf 2 如何根据选择菜单更改数据表的列?_Jsf 2_Primefaces - Fatal编程技术网

Jsf 2 如何根据选择菜单更改数据表的列?

Jsf 2 如何根据选择菜单更改数据表的列?,jsf-2,primefaces,Jsf 2,Primefaces,我使用的是JSF 2和PrimeFaces 5,我有一个数据表,其单元格需要根据下拉菜单中的选择进行更新。具体来说,我想根据我的选择更改列表(dataTable值)(基本上这意味着对于每个选项dataTable将显示不同的记录) 可以这样做吗?是的,只需相应地更改型号即可 例如,这: <p:selectOneMenu value="#{bean.selectedItem}"> <f:selectItems value="#{bean.availableItems}" /

我使用的是JSF 2和PrimeFaces 5,我有一个数据表,其单元格需要根据下拉菜单中的选择进行更新。具体来说,我想根据我的选择更改列表(dataTable值)(基本上这意味着对于每个选项dataTable将显示不同的记录)


可以这样做吗?

是的,只需相应地更改型号即可

例如,这:

<p:selectOneMenu value="#{bean.selectedItem}">
    <f:selectItems value="#{bean.availableItems}" />
    <p:ajax listener="#{bean.changeDataModel}" update="table" />
</p:selectOneMenu>

<p:dataTable id="table" value="#{bean.dataModel}">
    ...
</p:dataTable>

非常感谢@BalusC我已经完成了这项工作。。。但我仍然有一个问题:当我从列表中选择一个值时,我有一个表from items,它的大小正好是每个类别中的项目数,但是这个表是免费的。。我没有价值。。我不知道为什么O.oAs回答说,bean必须是
@viewscope
,而不是
@requestscope
。如果仍有问题,只需按右上角的
[提问]
按钮即可。这个问题与被问的问题无关。既然你是新来的,请不要忘记在最有助于解决和理解具体问题的答案上标注“接受”。另请参见我将其设置为@SessionScoped..我更改了它,但我有以下错误:\deploy is failing=部署期间发生错误:加载应用程序时异常:CDI定义失败:WELD-000075普通作用域托管bean实现类有一个公共字段:[EnhancedAndNotatedFieldImpl]public bean.catBean.listCatégorie。有关更多详细信息,请参阅server.log。我可以解决我的问题。这项工作现在做得很好。。谢谢:)不客气。详细信息就在
server.log
中,与异常所示完全相同。
public void changeDataModel() {
    dataModel = someService.load(selectedItem);
}