0

最近,我一直在做一个使用 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。

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

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

4

1 回答 1

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,所以它是可序列化的,但我忘记将注入的 ResourceBundle 和 FacesContext 标记为瞬态。(我的主要问题)。

3.) 对于带有弹出对话框示例的 primefaces 选择,请确保操作按钮以对话框元素 id 为目标进行更新。

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

仅此而已,我的项目现在可以正常运行:-) 谢谢。

于 2012-12-31T03:24:13.070 回答