MyEclipseJSF快速入门中文版(PDF文件图片显示不全问题已修正)PDF版本下载:MyEclipse_JSF_quickstart_zh_CN.pdf650KB建议右键另存为相关资料:《jsf入门》简体中文版.rar电子书下载MyEclipseJSF快速入门中文版最后修订:9月26日,2005年翻译:BeanSoft@126.comBlog:日期:2007-9-24声明:中文文字版权归刘长炯(beansoft@126.com)所有,原文及相关的图片等资源的版权归原作者GenuitecL.L.C公司所有.原文地址:目录JSFQuickstart中文版...11.前言...12.介绍...13.系统需求...24.设置新项目和目录结构...25.创建消息包...76.创建受管Bean.87.创建JSP页面...148.运行应用程序...329.总结...3610.用户反馈...371.前言这个文档基于下列环境编写:SunJDK1.5.0,Eclipse3.1和MyEclipse4.0.如果你注意到这个文档和你正在操作的Eclipse/MyEclipse的版本不一致,在使用这个向导时遇到困难或者无法根据向导进行操作,请参考用户反馈部分来了解如何汇报这个问题.返回页首2.介绍在这个教程中我们将使用MyEclipseEnterpriseWorkbench来开发一个小小的JSF示例程序.不需要您对关于JSF和MyEclipse的相关知识有所了解,不过如果有所了解的话会更好.因为Struts是一个非常流行的web应用框架,所以JSF和Struts之间的相似点我们适当的提示您注意,来帮助哪些有过Struts开发经验的读者.然而,如果你以前对Struts一无所知,你完全可以很自在的忽略这些内容.返回页首3.系统需求下面是这个指南所使用的软件的列表:JDK1.4+(Sun或者IBM)Eclipse3.1SDKMyEclipse4.1Tomcat5.x(首选5.5.9,或者其它符合标准的Servlet/EJB容器)对这个简单的例子,用户名是myeclipse,密码也是myeclipse.注意:在安装过JDK并且重启你的计算机后,请确保首先安装Eclpse然后是MyEclpse,最后安装Tomca.所有这些软件安装完毕后,请确保在MyEclipse中设置对应的Tomcat5服务器设置;请使用正确的TomcatHome目录和你刚刚安装好的那个可用的JDK.如果你不知道如何在MyEclipse中设置Tomcat,你可以参考使用应用服务器ApplicationServers快速入门向导.返回页首4.设置新项目和目录结构为了组织我们的开发过程,我们需要在MyEclipse中创建一个新的Web模块并向它添加JSF功能(JSFCapabilities)模块.你可以通过向导来创建一个web项目,请通过选择菜单项FileNewOtherProjectJ2EEWebProject来打开,如下图4.1所示.图4.1:创建一个新的web项目图4.2:Web项目向导对话框这个向导可以让你自定义项目的设置,通过在对话框的输入框里输入一些值来自定义,如图4.2所示.注意:因为开发JSF程序的时候流行和JSTL类库搭配,所以在项目创建时建议您选择JSTLLibraries.然而,您也可以在以后再来添加JSTL类库,通过选择MyEclipse菜单的AddJSTLLibraries菜单项来完成.一旦Web项目创建了,我们需要给它添加JSF功能.这个操作可以通过PackageExplorer视图的项目根节点上右键点击,选择弹出菜单中的MyEclipseAddJSFCapabilities,如图4.3所示.图4.3:向Web项目添加JSFCapabilitiesJSF对话框的默认值对这个教程来说不需要修改就可以使用.高手们也可以通过修改对话框里面的默认值来改变配置,如图4.4所示.图4.4:配置JSFCapabilities这个向导结束后,项目的目录结构将会如下图4.5所示.图4.5:配置后的项目布局现在项目已经创建,我们可以开始修改并创建我们自己的应用相关的代码了.返回页首5.创建消息包让我们来通过创建一个MessageBundle文件正式开始我们的应用.这是一个简单的属性文件,它将保存所有的消息字符串以及相关的主键.然后这个消息包可以用在我们的任何JSP文件中来让我们的应用很容易的支持国际化语言.作为类比,Struts在这个领域提供了相似的支持,通过使用ApplicationResources.properties文件,以及不同的bean/标签,以及bean标签所允许的消息包属性来完成这套功能.在JSF里面,我们可以在JSP页面里加入一行代码来加载消息包:f:loadBundlebasename=com.jsfdemo.MessageBundlevar=bundle/注意:这一行代码创建了一个生命周期为页面的消息包,这个包可以稍后在页面中通过变量名'bundle'来进行引用,可以用来查找消息主键,然后返回对应的消息值.在创建消息包文件的时候,先在源代码目录创建包com.jsfdemo,通过右键点击源代码目录,然后选择弹出的菜单中的NewPackage即可完成.要创建消息包文件,我们使用新建文件向导,右键点击项目的’src’目录,在弹出的菜单中选择NewFile,如下图5.1所示.图5.1:创建消息包文件当指定新建文件的保存位置时,选择Browse...,选中目录/JSFLoginDemo/src/com/jsfdemo,将文件命名为MessageBundle.properties,然后选择Finish.新建消息包文件成功后,我们需要为每个在JSP里面需要显示的标签或者字符串以键值对的方式添加到属性文件中.复制图5.2中的内容到你的消息包文件然后保存它:MessageBundle.propertiesuser_name_label=UserName:user_password_label=Password:login_button_label=Login图5.2:MessageBundle.properties文件内容现在我们的MessageBundle创建完毕了,接下来我们要创建受管Bean(ManagedBean),它将处理我们的用户登录操作.返回页首6.创建受管Bean在这一部分我们将会看到如何创建ManagedBean,这个Bean将会执行登录JSP页面所提示的登录操作,以及保存用户输入的用户名和密码.出于演示的目的,我们的登录操作知识简单的检查用户名和密码是不是都是myeclipse,然后将用户重新指引到userLoginSuccess.jsp页面.否则它会返回到登录页面.首先使用MyEclipseJSFEditor打开文件faces-config.xml:图6.1:打开并准备编辑faces-config.xml文件在MyEclipse4.0中faces-config.xml编辑器已经比以前的版本有所增强,你不仅可以创建和管理应用程序流程(浏览规则NavigationCases),还可以通过大纲(Outline)视图来创建/修改并管理所有资源.你可以点击大纲视图右上角的下箭头按钮来添加新的bean,如图6.2:图6.2:通过大纲视图启动ManagedBean向导现在你会看到新建ManagedBean向导对话框;请按照下面的图6.3和6.4所示来输入值:图6.3:设置新ManagedBean的类和属性图6.4:ManagedBean向导完成页面你现在会注意到新的UserBean被添加到Outline视图,如图6.5所示:图6.5:UserBean现在显示在Outline视图同时新建的UserBean.java源文件也在Java编辑器中打开了:图6.6:UserBeanJava源代码在编辑器中打开注意我们的两个属性(username和password)的getters和setters方法已经自动生成了,所以对这个类唯一需要做的就是添加并实现loginUser方法,这个方法将会在用户登录时调用.下面的图6.7显示了loginUser方法的代码片断.请将这个代码复制粘贴到你自己的文件里,并添加必要的新的类的import语句:UserBean.javapublicStringloginUser(){if(myeclipse.equals(getUserName())&&myeclipse.equals(getPassword()))returnsuccess;FacesContextfacesContext=FacesContext.getCurrentInstance();FacesMessagefacesMessage=newFacesMessage(Youhaveenteredaninvalidusernameand/orpassword);facesContext.addMessage(loginForm,facesMessage);returnfailure;}图6.7:新建的UserBean.java文件中的loginUser代码片断仔细看看bean的代码,我们可以注意到一些独特之处.例如,UserBean类并没有继承或者实现绑定到JSF的任何类或者接口.它仅仅是一个简单的包含了额外的逻辑来执行有用的操作的JavaBean.用Struts的术语来说,它包含了StrutsForm和StrutsAction的所有功能,方便的合并在一个类中.另一个和Struts的不同之处是这些方法没有返回任何特殊的类,例如ActionForward,因为导航信息是在faces-config.xml部署描述符中通过配置完成的.而且,在第8部分我们将展示如何创建并配置这个描述.返回页首7.创建JSP页面在这一小节里面将集中精力为我们的示例JSF应用来创建JSP页面,来模拟一个简单的网站常见的登录页面.最后的结果只需要2个JSP页面,一个用来提示用户来登录,另一个用来告诉用户登录成功.我们把这两个页面分别命名为loginUser.jsp和loginUserSuccess.jsp.为了简单起见,如果尝试登录的时候验证身份失败,就将用户重定向回页面loginUser.jsp.为了避免引起混淆,我们没有在这个例子里使用任何验证机制,不过你可以很容易的为JSF的inputText/Secret组件添加验证器.我们将使用这些输入框来验证用户输入的值的长度并且可以在登录失败时给用户显示错误信息.另一个MyEclipse4.0中的新功能是我们可以为JSF应用程序创建JSP页面,通过在MyEclpseJSF编辑器中修改文件faces-config.xml来实现.所以请确保文件依然保持打开然后我们可以开始创建我们的userLogin.jsp页面.要创建我们的userLogin.jsp页面,首先需要先点击一下JSP按钮,然后点击到画图板上.当新建JSP向导对话框弹出时,根据图7.1的显示在FileName(文件名)输入框中输入值并选择JSF模版:图7.1:使用faces-config.xml编辑器创建userLogin.jsp现在我们也可以使用同样的方式来创建userLogi