MyEclipse6Java开发中文教程 1442创建消息包 JSF支持国际化的消息文件,因此在项目里面可以使用消息包来显示多国语言。现在让 我们来创建一个 Message Bundle文件,这是一个简单的属性文件,它将保存所有的消息字 符串以及相关的主键,然后这个消息包可以用在我们的任何JSP文件中来让我们的应用很 容易的支持国际化语言。就像过去看到的那样, Struts1和2在这个领域提供了相似的支持 通过使用 Application Resources. properties文件或者 package properties文件,以及不同 的< bean: message/标签,或者< s text>标签,就可以在页面中根据消息包来显示国际化 的提示信息。在JSF页面里面,我们可以在JSP页面里加入一行代码来加载消息包 <f. loadBundle basename="com jsfdemo Message Bundle"var bundle 注意:这一行代码创建了一个生命周期为页面的消息包,这个包可以稍后在页面中通过变量 名 bundle'来进行引用,可以用来査找消息主键,然后返回对应的消息值。外,JsF可以 完全不用消息驱动包也能进行开发,所以读者不要误会,换句话说,这一节的内容和后面的 些内容是可选的。 要创建消息包文件,我们可以使用新建文件向导,在 Package Explorer视图中右键点 击项目的src目录,在弹出的菜单中选择New>Fie,在文件新建对话框的 File name中 输入 Messages. properties,然后将文件内容修改为如下所示 login label=Please Login: username label=User nar 。同样的我们还需要一份中文的消息文件内容,具体制作方法可以参考1233使用国际化 消息一节的内容。这份文件名为 Messages zh CN properties,文件内容如下 login label=\u8bf7\u767b\u5f55 username label=\u7528\u6237\u540d 。这两行转码过的文字内容分别是:请登录和用户名。主键将来会用在JSF页面中显示消 息之用。 刘长炯著
MyEclipse 6 Java 开发中文教程 6 刘长炯著 14.4.2 创建消息包 JSF 支持国际化的消息文件,因此在项目里面可以使用消息包来显示多国语言。现在让 我们来创建一个 MessageBundle 文件,这是一个简单的属性文件,它将保存所有的消息字 符串以及相关的主键, 然后这个消息包可以用在我们的任何 JSP 文件中来让我们的应用很 容易的支持国际化语言。就像过去看到的那样,Struts1 和 2 在这个领域提供了相似的支持, 通过使用 ApplicationResources.properties 文件或者 package.properties 文件,以及不同 的<bean:message /> 标签,或者<s:text>标签,就可以在页面中根据消息包来显示国际化 的提示信息。在 JSF 页面里面,我们可以在 JSP 页面里加入一行代码来加载消息包: <f:loadBundle basename="com.jsfdemo.MessageBundle" var= "bundle"/> 注意:这一行代码创建了一个生命周期为页面的消息包,这个包可以稍后在页面中通过变量 名'bundle'来进行引用,可以用来查找消息主键,然后返回对应的消息值。另外,JSF 可以 完全不用消息驱动包也能进行开发,所以读者不要误会,换句话说,这一节的内容和后面的 一些内容是可选的。 要创建消息包文件,我们可以使用新建文件向导,在 Package Explorer 视图中右键点 击项目的 src 目录,在弹出的菜单中选择 New > File ,在文件新建对话框的 File name 中 输入 Messages.properties,然后将文件内容修改为如下所示: login_label=Please Login: username_label=User name: 。同样的我们还需要一份中文的消息文件内容,具体制作方法可以参考 12.3.3 使用国际化 消息一节的内容。这份文件名为 Messages_zh_CN.properties,文件内容如下: login_label=\u8bf7\u767b\u5f55: username_label=\u7528\u6237\u540d: 。这两行转码过的文字内容分别是:请登录:和用户名:。主键将来会用在 JSF 页面中显示消 息之用
MyEclipse6Java开发中文教程 Her file Create a new file resource Enter or select the parent folder HelloJSF/src 合 C. myecl Ipse 急 Webroot File name: Messages. properties I [Advanced>> Finish 图144创建国际化消息资源文件 现在我们的 MessageBundle创建完毕了,接下来我们要创建受管 Bean(Managed Bean),它将处理我们的用户登录操作。很快你就会发现 ManagedBean和 Struts2中的 Action类很相似。 1443创建受管Bean 在这一部分我们将会介绍如何创建 Managed Bean,这个Bean将会执行登录JSP页面 所提示的登录操作,以及从页面表单中提取参数,并保存用户输入的用户名和密码到Bean 的属性中(类似于 Struts2的 Action所做的那样)。出于演示的目的,我们的登录操作只是 简单的检查用户名和密码是否都为" myeclipse",然后将用户重新指引到登录成功的 userLogin Success jsp页面,如果登录失败就返回到输入密码页面。 首先使用 MyEclipse JSF Cofnig Editor打开文件 faces- config. xml,用鼠标双击此文 件即可打开。在工具箱( Palette),我们可以点击工具栏按钮创建各种元素,包括创建和管 理应用程序流程(即导航规则 Navigation Case)。而在画布上点击右键,则可以看到快捷 菜单,包括 Undo Text Change撤销文本修改 Redo Text Change重做文本修改 Add NavigationRule添加导航规则 Export Image导出为图片 。点击底部的标签 Design/Source则可以在设计视图和源代码视图(源代码是XML格式 的)之间切换 刘长炯著
MyEclipse 6 Java 开发中文教程 7 刘长炯著 图 14.4 创建国际化消息资源文件 现在我们的 MessageBundle 创建完毕了,接下来我们要创建受管 Bean(ManagedBean),它将处理我们的用户登录操作。很快你就会发现 ManagedBean 和 Struts 2 中的 Action 类很相似。 14.4.3 创建受管 Bean 在这一部分我们将会介绍如何创建 ManagedBean,这个 Bean 将会执行登录 JSP 页面 所提示的登录操作,以及从页面表单中提取参数,并保存用户输入的用户名和密码到 Bean 的属性中(类似于 Struts 2 的 Action 所做的那样)。出于演示的目的,我们的登录操作只是 简单的检查用户名和密码是否都为 "myeclipse",然后将用户重新指引到登录成功的 userLoginSuccess.jsp 页面,如果登录失败就返回到输入密码页面。 首先使用 MyEclipse JSF Cofnig Editor 打开文件 faces-config.xml,用鼠标双击此文 件即可打开。在工具箱(Palette)上,我们可以点击工具栏按钮创建各种元素,包括创建和管 理应用程序流程(即导航规则 Navigation Case)。而在画布上点击右键,则可以看到快捷 菜单,包括: Undo Text Change 撤销文本修改 Redo Text Change 重做文本修改 Add NavigationRule 添加导航规则 Export Image 导出为图片 。点击底部的标签 Design/Source 则可以在设计视图和源代码视图(源代码是 XML 格式 的)之间切换
MyEclipse6Java开发中文教程 f nig. d Palett Select 恢复为选择状态 拖拉选中 M Navi gati 导航规则 ‖导航节点 Navi gati or Y Undo Text Change Ctrl+z S Redo T JSP 切换设计和源码 Add Navi gati onRu Design Source Export Image 图14.5JSF配置文件编辑器及其快捷菜单 除此之外,此时的大纲视图可以显示当前文件的内容结构,还可以创建几乎所有的JSF 元素,点中大纲上的节点的话也会选中对应设计面板上的元素或者是定位到对应的XML源 代码。从 Outline视图上,你可以右键点击选择对应的快捷菜单,然后来激活向导创建对应 类型的组件,或者来使用向导编辑存在的组件,如图146左侧图所示:另一种方式就是点 击 Outline视图的按钮则弹出相关的创建JSF组件的菜单,点击对应的菜单项就可以启动 相应的对话框来创建所需要的元素,如图146右侧图所示 军L v Show Attributes JSF Outline with Catgories XHL Outline J Add Api A Add Factory 可 Add Convert +c Managed Beans 日 avi gation Rules Ky Add Navi gati onRule +.ky /userLogin. jsp *Add ReferencedBean Edit d 2 Add Renderkit Add Lifecycle x卫 elete M Add Validator 图146 Outline视图以及启动创建 ManagedBean向导 当我们按照图146中右图步骤操作时,即可启动新建 Managed Bean向导对话框,此 刘长炯著
MyEclipse 6 Java 开发中文教程 8 刘长炯著 图 14.5 JSF 配置文件编辑器及其快捷菜单 除此之外,此时的大纲视图可以显示当前文件的内容结构,还可以创建几乎所有的 JSF 元素,点中大纲上的节点的话也会选中对应设计面板上的元素或者是定位到对应的 XML 源 代码。从 Outline 视图上,你可以右键点击选择对应的快捷菜单,然后来激活向导创建对应 类型的组件,或者来使用向导编辑存在的组件,如图 14.6 左侧图所示;另一种方式就是点 击 Outline 视图的 按钮则弹出相关的创建 JSF 组件的菜单,点击对应的菜单项就可以启动 相应的对话框来创建所需要的元素,如图 14.6 右侧图所示。 图 14.6 Outline 视图以及启动创建 ManagedBean 向导 当我们按照图 14.6 中右图步骤操作时,即可启动新建 Managed Bean 向导对话框,此
MyEclipse6Jaa开发中文教程 对话框如图14.7所示。我们按照图中进行设置即可。Name处输入 UserBean。 Class输入 com. jsfdemo. UserBean。 Scope设置这个Bean的作用域,取值包括 request, session, application和none(无),这里选中 sess/olη。对话框的最下方则需要选中复选框 Generate Java code(生成Java代码)和 Generate missiong getters/ setters for properties(生成缺 少的属性所对应的 getter和 setter方法),这样我们才能在中间的 Properties标签下的属性 列表中添加,删除和修改Bean的属性,最后还能生成对应的代码。 T⊥zard New Managed Bean reate new managed bean entry 输入Bean名称,类名,以 及作用域要 sessIon Name:UserBean Class: com. jsfdemo UserB Scope:session Properties Description Name Class value Add password java. lang String Edi 添加,修改和删除Bean属性 Add class propertie v Generate Java code v Generate missing getters/setters for properties 一程所芬 和set方 ⑦点击下一步 Hext> Finish Cancel 图147设置新 ManagedBean的类和属性 点击Add按钮后将会弹出添加属性的对话框,一共有两页,如图148所示。第一页可以 设置Name(属性名), Property Kind(属性种类,支持简单类型,以及Map和列表),以 及 Class(属性的完整类名,包括int, java. lang String等等,注意不是任意类型都可以 般来说只能用简单的类型,或者有转换器— Converter的类型,限于篇幅就不多做介绍了), Description可以输入类型的描述信息。第二页的 Property Value则说明了JSF具有简单 的属性值注入能力了,可以设置初始化时候的取值,默认情况下是nul。点击 Finish按钮关 闭对话框即可完成属性的添加。 在第一页设置完毕后,我们还必须点击图147中的Next按钮进行第二页的设置,这 一页相对非常简单,就是设置最终代码所生成的位置,默认情况下点击 Finish按钮就可以 了,读者也可以根据情况进行一些必要的调整。现在,整个向导结束了,稍等片刻后,即会 创建我们需要的 Javabean以及会自动修改相关的配置文件。 刘长炯著
MyEclipse 6 Java 开发中文教程 9 刘长炯著 对话框如图 14.7 所示。我们按照图中进行设置即可。Name 处输入 UserBean。Class 输入 com.jsfdemo.UserBean。Scope 设置这个 Bean 的作用域,取值包括 request,session, application 和 none(无),这里选中 session。对话框的最下方则需要选中复选框 Generate Java code(生成 Java 代码)和 Generate missiong getters/setters for properties(生成缺 少的属性所对应的 getter 和 setter 方法),这样我们才能在中间的 Properties 标签下的属性 列表中添加,删除和修改 Bean 的属性,最后还能生成对应的代码。 图 14.7 设置新 ManagedBean 的类和属性 点击 Add...按钮后将会弹出添加属性的对话框,一共有两页,如图 14.8 所示。第一页可以 设置 Name(属性名),Property Kind(属性种类,支持简单类型,以及 Map 和列表),以 及 Class(属性的完整类名,包括 int,java.lang.String 等等,注意不是任意类型都可以的, 一般来说只能用简单的类型,或者有转换器—Converter的类型,限于篇幅就不多做介绍了), Description 可以输入类型的描述信息。第二页的 Property Value 则说明了 JSF 具有简单 的属性值注入能力了,可以设置初始化时候的取值,默认情况下是 null。点击 Finish 按钮关 闭对话框即可完成属性的添加。 在第一页设置完毕后,我们还必须点击图 14.7 中的 Next 按钮进行第二页的设置,这 一页相对非常简单,就是设置最终代码所生成的位置,默认情况下点击 Finish 按钮就可以 了,读者也可以根据情况进行一些必要的调整。现在,整个向导结束了,稍等片刻后,即会 创建我们需要的 JavaBean 以及会自动修改相关的配置文件
MyEclipse6Java开发中文教程 Managed Bean Property izard New managed-bean-property Create managed-bean" property element age Property Kind: Simple O Map LIst Cla description:年龄属性 K Back Next>C Finish 悉夏 anaged Bean Property Vizard回区 New Managed Bean Property Value Set the value of the managed be property roperty value:201 □ NULLvalue ⑦〈tCn 图148添加属性的对话框 D=- Ou 日② Managed Beans ⊙ ⑥ password c Navi gation Rules 图149大纲视图中的 UserBean 现在我们可以看到 UserBean出现在JSF配置文件编辑器的大纲视图中,同时呢,新建的 UserBean java源文件也在Java编辑器中打开了,其源代码清单如下所示: package com. jsfdemo; 刘长炯著
MyEclipse 6 Java 开发中文教程 10 刘长炯著 图 14.8 添加属性的对话框 图 14.9 大纲视图中的 UserBean 现在我们可以看到 UserBean 出现在 JSF 配置文件编辑器的大纲视图中,同时呢,新建的 UserBean.java 源文件也在 Java 编辑器中打开了,其源代码清单如下所示: package com.jsfdemo;