最近,我一直在研究一个使用Primefaces UI的项目。其中一个要求是拥有一个数据表,用户可以在其中选择多行。我已经实现了类似于http://www.primefaces.org/showcase-labs/ui/datatableRowSelectionRadioCheckbox.jsf的内容,但它没有用。
起初,我认为我的代码有问题但是当我从primefaces复制这些例子时它也没有用。所以我想知道我的技术堆栈是否有问题:JavaEE6,Glassfish 3.1.2.2,mojarra(javax.faces)2.1.16,primefaces 3.4.2。
对于示例代码,我完全复制了上面给出的链接。
请注意,单一选择也不起作用。
答案 0 :(得分:0)
我能够通过以下方式解决这个问题:
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是SessionScoped所以它是Serializable,但是我忘记将我注入的ResourceBundle和FacesContext标记为瞬态。 (我的主要问题)。
3.。)对于带有弹出对话框示例的主要面选择,请确保操作按钮以对话框元素id为目标进行更新。
4.确保在eclipse项目上运行maven clean,以及你拥有的项目依赖项。例如,我有一个web-commons,我在那里定义了对mojarra的依赖,虽然我一直在清理主项目,但我没有注意到commons依赖项将mojarra jar添加到最后一个耳朵。
这就是全部,我的项目现在正常运作:-)谢谢。