2016-12-15 48 views
-1

我在j2ee(ejb,hibernate,mysql)中創建和應用後端。 Web應用程序的前端最初設計爲帶有後臺bean的jsf(primefaces)。適用於Mobile和Web的前端技術

此外,它已決定在將來爲移動應用程序使用cordove/html5頁面。

我對此很新,並且在重複使用網絡和移動應用程序的代碼以及這些不同技術的集成方面存在一些問題。而不是單獨爲手機開發

  1. 如果我使用純HTML5/JavaScript可以在Web應用程序以及codova移動應用程序中使用相同的頁面。
  2. 如果是這樣,那麼正常的支持bean邏輯呢?我現在在哪裏放?可以通過cordova html5頁面訪問backing bean嗎?另外jsf綁定,我如何在網頁上接收數據
  3. JavaScript是訪問其他webservices的唯一方式嗎?我將訪問這些從網絡應用程序以及移動
  4. 總而言之,用cordova html5/js/css開發意味着遠離jsf 100%。這意味着不能訪問像primefaces這樣的jsf組件或框架。還有什麼來取代這些技術,兩個
+0

Whaty需要非常具體的是「移動應用程序」是否是一個真正的「應用」是將要在手機上安裝並運行在那裏,或者是移動Web應用程序或者它是一個混合(小應用程序啓動一些東西,然後繼續作爲一個Web應用程序) – Kukeltje

回答

0

是兼容的。如果我用純HTML5/JavaScript可以在同一頁面中的Web應用程序 以及在codova移動應用程序中使用。

是的,這是很重要的一點,你甚至可以在一個科爾多瓦應用程序中使用jquery等。

如果是這樣,那麼正常的支持bean邏輯呢?我現在在哪裏放 ?可以通過cordova html5頁面訪問backing bean嗎?此外 JSF結合,如何在網頁中

任何支持邏輯可以用任何東西,Node.js的,PHP,等等等等送達接收數據..

JavaScript是唯一的出路訪問其他Web服務?我會 從Web應用程序訪問這些以及移動

應該有在這裏的邏輯沒有變化,既可以使用AJAX來訪問你的web服務。

總而言之,用cordova html5/js/css開發意味着 遠離jsf 100%。這意味着不能訪問jsf組件 或像primefaces這樣的框架。還有什麼可以替代這些 技術兼容的嗎?

任何後端,可以保持原樣。因此,如果你有任何REST API,它們仍然可以工作。任何客戶端將會是新的,..你提到的Primefaces - >PrimeUI is a pure CSS-JS library designed to work with any server side and client side technology,所以你應該可以使用它,它們也有一個Anglular2綁定,它也應該工作。

好吧,我更新這解釋什麼是後端,.如果你的後端有任何邏輯,例如。假如你有一些發佈發票的邏輯,如果這些都是自包含的,並且不依賴於任何視覺/交互,這很容易被暴露和重複使用。你只需要提供某種形式的IPC,無論這是一個簡單的REST API,甚至WebSocket的基於API的公開此,這樣做意味着你需要重寫的唯一部分是前端(視覺的東西)&某種IPC爲後端服務的..

+1

我認爲你的答案錯過了'支持bean'邏輯現在實施的方式。如果它在JSF中,它基於休息的機會很少。而PrimeFaces!=黃金UI(儘管該網址包含了兩個「primefaces」。因此,需要的東西重寫。 – Kukeltje

+0

@Kukeltje我不主張他仍然使用JSF,我wound't類JSF頁面作爲後端,因爲他們出現以更多的客戶端/用戶界面爲基礎..但是,如果他的JSF頁面從RESTful服務獲取數據,那麼這仍然可以使用,也許我沒有太清楚,即使他的後端現在沒有使用RESTful,他只需要使用類似RESTful API的方式公開他的後端邏輯。IOW:不需要完全重寫後端,我不是JAVA專家,但是我認爲公開RESTful API應該是很簡單 – Keith

+0

我知道,我不會低估你的答案,因爲它大部分都是好的,只是在大多數情況下,如果你有JSF UI,你沒有休息服務,那是我的觀點(和你的評論),而不是所有的開發者(一般我認爲是50%)注意分離關注點以創建一個簡單的基於Java的業務服務,可以更容易地作爲休息暴露。因此,這除了你使得答案還算不錯;-) – Kukeltje