【发布时间】:2012-12-14 23:45:02
【问题描述】:
最近,我一直在做一个使用 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。
至于示例代码,我完全是从上面给出的链接中复制的。
请注意,单选也不起作用。
【问题讨论】:
-
至少堆栈没有问题。请注意,GlassFish 实现了 JSF,因此如果您自己添加了它,那么它确实不起作用。你的堆栈基本上是 GlassFish 3.1.2.2 + PrimeFaces 3.4.2。
-
抱歉,JSF 2.1 不包含在我的最终耳朵项目中。我用mojarra代替了它。所以要解决这个问题,你的意思是我应该删除对 mojarra 的依赖?我会试试的。
-
不幸的是,Mojarra 无法替换 JSF 2.1。 “问题”是 Mojarra 是 JSF 2.1。 GlassFish 已经提供了 JSF(恰好是 Mojarra)。如果您的 EAR 中没有任何内容(只有一个 PrimeFaces 库),那么没关系。
-
@ArjanTijms,在删除对 mojarra 的依赖并且只保留 primefaces jar 之后,选择仍然不起作用。而且经过进一步测试,单选也不起作用。
-
这取决于“删除对 Mojarra 的依赖”的意思。如果您的意思是从 GlassFish 中移除 Mojarra 罐子,那么这显然不好。如果您的意思是删除代码中对 Mojarra 的引用,那么这又取决于您的意思。由于 PrimeFaces 在 JSF 实现之上工作,而 Mojarra 是您的 JSF 实现,因此您无法真正删除对 JSF 的依赖,只剩下 PrimeFaces 依赖。如果你以某种方式使用了 Mojarra 私有包,那么当然,删除它们。但目前我没有看到与该问题的联系。
标签: jsf jsf-2 primefaces mojarra