MyEclipse JSF

 1. 前言

这个文档基于下列环境编写: Sun JDK 1.5.0, Eclipse 3.1 和 MyEclipse 4.0. 假如你注重到这个文档和你正在操作的Eclipse/MyEclipse的版本不一致, 在使用这个向导时碰到困难或者无法根据向导进行操作, 请参考 用户反馈 部分来了解如何汇报这个问题.

2. 介绍

在这个教程中我们将使用MyEclipse Enterprise Workbench来开发一个小小的 JSF 示例程序. 不需要您对关于JSF 和 MyEclipse的相关知识有所了解, 不过假如有所了解的话会更好.

因为Struts 是一个非常流行的 web 应用框架, 所以JSF 和 Struts之间的相似点我们适当的提示您注重, 来帮助哪些有过 Struts 开发经验的读者. 然而, 假如你以前对 Struts 一无所知, 你完全可以很安闲的忽略这些内容.


3. 系统需求

下面是这个指南所使用的软件的列表:

JDK 1.4 (Sun 或者 IBM)
http://java.sun.com/j2se/downloads/index.html
Eclipse 3.1 SDK
http://www.eclipse.org/downloads/index.php
MyEclipse 4.1
http://www.myeclipseide.com/ContentExpress-display-ceid-10.html
Tomcat 5.x (首选5.5.9, 或者其它符合标准的 Servlet/EJB 容器)
http://jakarta.apache.org/tomcat/index.html
对这个简单的例子, 用户名 是 "myeclipse" , 密码 也是 "myeclipse".
注重: 在安装过 JDK 并且重启你的计算机后, 请确保首先安装 Eclipse 然后是 MyEclipse, 最后安装 Tomcat. 所有这些软件安装完毕后, 请确保在 MyEclipse 中设置对应的Tomcat 5 服务器设置; 请使用正确的Tomcat Home 目录和你刚刚安装好的那个可用的 JDK. 假如你不知道如何在 MyEclipse 中设置 Tomcat, 你可以参考 使用应用服务器 快速入门向导.

4. 设置新项目和目录结构

为了组织我们的开发过程, 我们需要在 MyEclipse 中创建一个新的 Web 模块并向它添加 JSF 功能(JSF Capabilities)模块. 你可以通过向导来创建一个web项目, 请通过选择菜单项File > New > Other > Project > J2EE > Web Project 来打开, 如下图 4.1所示.
MyEclipse JSF 快速入门中文版(上)

MyEclipse JSF 快速入门中文版(上)


这个向导可以让你自定义项目的设置, 通过在对话框的输入框里输入一些值来自定义, 如图4.2所示.

注重: 因为开发 JSF 程序的时候流行和JSTL类库搭配, 所以在项目创建时建议您选择"JSTL Libraries". 然而, 您也可以在以后再来添加 JSTL 类库, 通过选择 MyEclipse 菜单的 "Add JSTL Libraries" 菜单项来完成.

一旦Web项目创建了, 我们需要给它添加JSF功能. 这个操作可以通过Package Explorer 视图的项目根节点上右键点击, 选择弹出菜单中的 MyEclipse > Add JSF Capabilities, 如图4.3 所示.
MyEclipse JSF 快速入门中文版(上)


JSF 对话框的默认值对这个教程来说不需要修改就可以使用. 高手们也可以通过修改对话框里面的默认值来改变配置, 如图 4.4 所示.
MyEclipse JSF 快速入门中文版(上)


这个向导结束后, 项目的目录结构将会如下图 4.5所示.
MyEclipse JSF 快速入门中文版(上)


现在项目已经创建, 我们可以开始修改并创建我们自己的应用相关的代码了. 5. 创建消息包

让我们来通过创建一个MessageBundle文件正式开始我们的应用. 这是一个简单的属性文件, 它将保存所有的消息字符串以及相关的主键. 然后这个消息包可以用在我们的任何JSP文件中来让我们的应用很轻易的支持国际化语言. 作为类比, Struts 在这个领域提供了相似的支持, 通过使用ApplicationResources.properties 文件, 以及不同的 标签, 以及bean标签所答应的消息包属性来完成这套功能.

在 JSF里面, 我们可以在JSP页面里加入一行代码来加载消息包:


注重: 这一行代码创建了一个生命周期为页面的消息包, 这个包可以稍后在页面中通过变量名'bundle'来进行引用, 可以用来查找消息主键, 然后返回对应的消息值.

在创建消息包文件的时候, 先在源代码目录创建包 com.jsfdemo, 通过右键点击源代码目录, 然后选择弹出的菜单中的New > Package即可完成. 要创建消息包文件, 我们使用新建文件向导, 右键点击项目的’src’目录, 在弹出的菜单中选择New > File , 如下图 5.1 所示.
MyEclipse JSF 快速入门中文版(上)


当指定新建文件的保存位置时, 选择 Browse..., 选中目录 /JSFLoginDemo/src/com/jsfdemo, 将文件命名为 MessageBundle.properties, 然后选择 Finish.

新建消息包文件成功后, 我们需要为每个在JSP里面需要显示的标签或者字符串以键值对的方式添加到属性文件中.复制图5.2中的内容到你的消息包文件然后保存它:

MessageBundle.properties

user_name_label=User Name:
user_password_label=Password:
login_button_label=Login

MyEclipse JSF 快速入门中文版(上)



现在我们的 MessageBundle 创建完毕了, 接下来我们要创建受管Bean(ManagedBean), 它将处理我们的用户登录操作. 6. 创建受管Bean

在这一部分我们将会看到如何创建ManagedBean , 这个Bean将会执行登录JSP页面所提示的登录操作, 以及保存用户输入的用户名和密码. 出于演示的目的,我们的登录操作知识简单的检查用户名和密码是不是都是 "myeclipse", 然后将用户重新指引到userLoginSuccess.jsp 页面. 否则它会返回到登录页面.


首先使用MyEclipse JSF Editor打开文件faces-config.xml :

MyEclipse JSF 快速入门中文版(上)


在 MyEclipse 4.0 中 faces-config.xml 编辑器已经比以前的版本有所增强, 你不仅可以创建和治理应用程序流程(浏览规则 Navigation Cases), 还可以通过大纲(Outline)视图来创建/修改并治理所有资源. 你可以点击大纲视图右上角的下箭头按钮来添加新的bean, 如图6.2:
MyEclipse JSF 快速入门中文版(上)


现在你会看到新建Managed Bean 向导对话框; 请按照下面的图6.3和6.4所示来输入值:
MyEclipse JSF 快速入门中文版(上)

MyEclipse JSF 快速入门中文版(上)


你现在会注重到新的 UserBean 被添加到 Outline 视图 , 如图 6.5 所示:
MyEclipse JSF 快速入门中文版(上)


同时新建的UserBean.java 源文件也在 Java 编辑器中打开了:

MyEclipse JSF 快速入门中文版(上)


注重我们的两个属性(username 和 password)的getters 和 setters 方法已经自动生成了, 所以对这个类唯一需要做的就是添加并实现loginUser 方法, 这个方法将会在用户登录时调用.

下面的图6.7显示了loginUser方法的代码片断. 请将这个代码复制粘贴到你自己的文件里, 并添加必要的新的类的import语句:

UserBean.java

public String loginUser() {
if("myeclipse".equals(getUserName()) && "myeclipse".equals(getPassword()))
return "success";

FacesContext facesContext = FacesContext.getCurrentInstance();
FacesMessage facesMessage = new FacesMessage(
"You have entered an invalid user name and/or password");
facesContext.addMessage("loginForm", facesMessage);

return "failure";
}


图 6.7: 新建的 UserBean.java文件中的 loginUser 代码片断

仔细看看 bean 的代码, 我们可以注重到一些独特之处.例如, UserBean 类并没有继续或者实现绑定到 JSF 的任何类或者接口. 它仅仅是一个简单的包含了额外的逻辑来执行有用的操作的 JavaBean. 用 Struts 的术语来说, 它包含了Struts Form 和 Struts Action的所有功能, 方便的合并在一个类中.

另一个和 Struts 的不同之处是这些方法没有返回任何非凡的类, 例如ActionForward, 因为导航信息是在faces-config.xml部署描述符中通过配置完成的.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值