利用 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…

     

如果这文章对你有帮助,请扫左上角微信支付-支付宝,给于打赏,以助博客运营