Jsf Primefaces datatable多个复选框不工作

Jsf Primefaces datatable多个复选框不工作,jsf,jsf-2,primefaces,mojarra,Jsf,Jsf 2,Primefaces,Mojarra,最近,我一直在做一个使用PrimeFacesUI的项目。其中一个要求是有一个数据表,用户可以在其中选择多行。我已经实现了类似于的东西,但它不起作用 起初,我认为我的代码有问题,但当我从primefaces复制示例时,它也不起作用。所以我想知道我的技术堆栈是否有问题:JavaEE6、Glassfish 3.1.2.2、mojarra(javax.faces)2.1.16、primefaces 3.4.2 至于示例代码,我完全是从上面给出的链接复制的 请注意,单一选择也不起作用。我可以通过以下方法解

最近,我一直在做一个使用PrimeFacesUI的项目。其中一个要求是有一个数据表,用户可以在其中选择多行。我已经实现了类似于的东西,但它不起作用

起初,我认为我的代码有问题,但当我从primefaces复制示例时,它也不起作用。所以我想知道我的技术堆栈是否有问题:JavaEE6、Glassfish 3.1.2.2、mojarra(javax.faces)2.1.16、primefaces 3.4.2

至于示例代码,我完全是从上面给出的链接复制的


请注意,单一选择也不起作用。

我可以通过以下方法解决此问题:

1.)从头开始创建一个新项目,并测试我的堆栈是否真的工作。正如Arjan Tijms所说,即使您向最新版本的mojarra添加依赖项,它也会被忽略。尝试在Glassfish中部署新应用程序,您会注意到以下几行:

[#|2012-12-31T11:19:15.958+0800|INFO|glassfish3.1.2|javax.enterprise.resource.webcontainer.jsf.config|_ThreadID=39;_ThreadName=Thread-2;|Initializing Mojarra 2.1.6 (SNAPSHOT 20111206) for context '/web-demo-0.0.1-SNAPSHOT'|#]
2.)我的bean是SessionScope的,因此可以序列化,但我忘记将注入的ResourceBundle和FacesContext标记为transient。(我的主要问题)

3.)对于带有弹出对话框的primefaces选择示例,请确保操作按钮针对要更新的对话框元素id

4.)确保在eclipse项目上运行maven clean,以及您拥有的项目依赖项。例如,我有一个WebCommons,我在其中定义了对Mojara的依赖,尽管我一直在清理主项目,但我没有注意到commons依赖将Mojara jar添加到最终ear中


就这些,我的项目现在运行正常:-)谢谢。

至少堆栈没有问题。请注意,GlassFish实现了JSF,所以如果您自己添加了JSF,那么它确实无法工作。您的堆栈基本上是GlassFish 3.1.2.2+PrimeFaces 3.4.2。对不起,JSF2.1不包括在我的最终ear项目中。我把它换成了莫哈拉。为了解决这个问题,你是说我应该删除对mojarra的依赖?很遗憾,用Mojarra代替JSF2.1是不可能的。“问题”在于Mojarra是JSF2.1。GlassFish已经提供了JSF(它恰好是Mojarra)。如果您的耳朵中没有任何内容(只有单一的PrimeFaces库),那么就没问题了。@ArjanTijms,在删除对Mojara的依赖关系并且只剩下PrimeFaces jar之后,选择仍然无法工作。在进一步测试之后,单一选择也不起作用。这取决于你所说的“移除对Mojarra的依赖”是什么意思。如果你的意思是从玻璃鱼身上取下莫哈拉瓶,那么这显然是不好的。如果您的意思是删除代码中对Mojarra的引用,那么这同样取决于您的意思。由于PrimeFaces是在JSF实现之上工作的,而Mojarra是您的JSF实现,因此您不能真正删除JSF上的依赖项,而只剩下PrimeFaces依赖项。如果您以某种方式使用了Mojarra私有包,那么一定要删除它们。但目前我看不出这与这个问题有什么关系。