2012-12-30 103 views
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。Primefaces數據表多個複選框不起作用

至於示例代碼,我完全從上面給出的鏈接複製。

請注意,單選也不起作用。

+0

至少這個堆棧沒有問題。請注意,GlassFish實現JSF,所以如果你自己添加它,那麼它確實無法工作。您的堆棧基本上是GlassFish 3.1.2.2 + PrimeFaces 3.4.2。 –

+0

對不起,JSF 2.1不包含在我的最終耳項目中。我用mojarra替換了它。所以要解決這個問題,你的意思是我應該去除對mojarra的依賴關係?我會嘗試的。 – czetsuya

+0

不幸的是,用Mojarra替代JSF 2.1是不可能的。 '問題'是Mojarra IS JSF 2.1。 GlassFish已經提供了JSF(它恰好是Mojarra)。如果您的EAR中沒有任何東西(只有單個PrimeFaces庫),那麼沒關係。 –

回答

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所以它是序列化的,但我忘了我的標記注入資源包和FacesContext的瞬態。 (我的主要問題)。

3.)對於彈出對話框示例中的primefaces選項,請確保操作按鈕將對話框元素ID作爲更新目標。

4.)確保在eclipse項目上運行maven clean,以及您擁有的項目依賴項。例如,我有一個網絡常用的地方,我定義了對mojarra的依賴關係,雖然我繼續清理主要項目,但我沒有注意到commons dependency將mojarra jar添加到最後一個耳朵。

而這一切,我的項目現在正常工作:-)謝謝。