利用 WebSphere Application Server V8 和 Rational Application Developer V8 開發 Java EE 6 應用程序7

 

@Stateful

@Named

@SessionScoped

public class AccountService implements Serializable {

     private static final long serialVersionUID = 7103565672729007156L;

     @PersistenceContext(unitName = “AccountManagementEJB”)

     EntityManager em;

     @Inject

     private Usertab user;

     @Inject

     private Credentials credential;

     ….

     public AccountService() {

         super();

     }

 

     public String login() {

     user

     = this.loginUser(credential.getUsername(),credential.getPassword());

         if (user != null)

             return (“AccountInfo.jsf”);

         else

             return (“AccountLogin.jsf”);

     }

     public Usertab loginUser(String username, String password) {

         ….

     }

 

     Getters() & Setters()…

 

}

JSF2.0 Facelets 開發

在 RAD 中開發 JSF2.0 Facelets 非常簡單,您只需要在您的 Dynamic Web Project 中 New->Web Page,選擇 Facelet,如圖 21 所示。


圖 21. 新建 JSF 頁面

點擊 Finish,打開”Palette”view 中”Standard Faces Components”,即可進行 JSF 頁面開發,如圖 22 所示。


圖 22. JSF Palette

CDI 與 JSF 集成

我們已經完成了 CDI Bean 和 JSF 頁面的開發,下一步僅需用 EL 表達式將其集成,即可完成 AccountLogin 程序。

在 AccountLogin.xhtml 中,利用 EL 表達式 #{credentials.username} 和 #{credentials.password} 對 Credentials 對象賦值,利用 #{accountService.login} 調用 AccountService bean 中 login 方法。這裡需要說明的是,當我們用 @Named 注釋修飾 Credentials 和 AccountService bean 時,其對應的默認 EL 變數名為首字母小寫的 Java Bean 名。具體的 JSF 代碼參見清單 15。


清單 15. AccoutLogin.xhtml

 

<h:form>

<h1>Login</h1>

<h:panelGrid columns=”2″>

<h:outputLabel for=”username”>Username:</h:outputLabel>

<h:inputText id=”username” value=”#{credentials.username}”/>

<h:outputLabel for=”password”>Password:</h:outputLabel>

<h:inputSecret id=”password” value=”#{credentials.password}”/>

</h:panelGrid>

<h:commandButton value=”Login” action=”#{accountService.login}”/>

</h:form>

運行 AccountLogin.xhtml,可以得到與圖 1 相同的顯示效果和功能。不同的是您訪問的 URL 是 http://localhost:9081/AccountManagementWeb_CDI/AccountLogin.faces,而不再是 JSP 文件。

完成全部開發後,我們的 AccountMangementWeb_CDI 項目組織結構參見圖 23。


圖 23. AccountManagementWeb_CDI 項目組織結構

圖 23 中橙色方框中的文件皆由 RAD 自動生成。對比圖 17,在啟用了 CDL 服務的 Account Login 程序中,我們去除了 Servlet 和 JSP 部分,僅添加了 JSF 和少量的 CDI 注釋、Backing bean 代碼,進一步簡化了開發過程。


結束語

本文通過 Account Login 實例,介紹了 Java EE 6 中 EJB 3.1、JPA 2.0、Servlet 3.0、Bean Validation、CDI、JSF 2.0 等新特性。由於篇幅所限,我們的實例中僅觸及了這些規範中最淺顯的部分,供讀者作為 Java EE 6 快速入門參考。

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營