MyEclipse6Java开发中文教程 节中创建的消息包的名字(不包含扩展名 properties),所以取值为 Messages(如果放在某 个包下面,对应的则应该是 com.XXXX. Messages),此时完整的代码如下所示 <f: load Bundle basename="Messages"var bundle 当然,我们也可以直接将这段代码敲入页面源码中,效果是一样的。在代码编辑区键入的 时候,先敲入小于号<,稍等片刻就能够看到 MyEclipse自动弹出的标记的完成提示,选 择一个后双击提示或者按下回车键,就能输入完整的标记,这样便于我们快速编写,如图 1413所示。 <f: loadBundle basename="Messages var="bundle"/> <》 CDATA Register an ActionListener ins r><f: actionListener UIComponent associ ated with t UIComp onent custom action <>f: attribute 图14.13JSF编辑器的代码自动完成提示 接下来要做的,是从刚才加载的国际化资源文件中,输出登录提示的信息,加入下列代 码即可 h output Text value=#bundle login label 。在输入这段代码时,当我们键入 bundle.后,稍等片刻,它就能列出对应的属性文件中的 键列表,进行自动完成的提示,总之JSF编辑器在多方面都提供了完成提示,读者可以慢 慢体会。这段代码将会输出一段国际化的文字,从bund/e中读取属性为 login labe的主键 所对应的值,最终它会读取 Messages. properties文件中(如果是中文环境则对读取中文的 Messages zh CN properties中的内容),并在运行时显示出来(最后的值是 Please Login 或者中文的请登录)。vaue以#括起来表示这是一段动态的需要执行的属性代码,相当于 EL表达式,类似于调用Java代码: bundle. get(login Labe鬥;如果是 JavaBean,那么这 样的值会对应一个方法 bundle. getLogin labe0。在后面我们会看到表单输入框的取值将会 采用这样的方式和后台的 Managed Bean中的属性值相对应,有个属于叫做bind(绑定)。 如果写作 value=”请登录:",那么这样是可以直接输出值的。如果不想记忆这段代码的话, 可以在 Patette的 JSFHTML一栏下可以找到对应的工具栏按钮: utput Text,点击它 可以获得同样的一段JSP标签 随后需要加入的是表单,点击在 Patette的 JSF HTML一栏下的的Fm即可加入表单 标记:<h:fom><h:fom>。 接着我们将光标放在表单中,然后给用户名添加一个文本输入框,点击点击在 Patette 的 JSFHTM一栏下的 Text Input即可加入此标签,可以通过在 Properties视图的Quck Edit标签中编辑其属性。在ID:右侧的输入框中输λ userName,在ⅤalUe:右侧输入框中输 入值# UserBean userName},如前所述,这将把输入框的值和后台的受管Bean: UserBean 的 userName属性关联起来。当然,我们也可以直接键入标签,最后得到的代码如下所示: h input Text id="userName"value=tUserBean userName/"></h input Text 接下来要加入的是给 password属性添加一个密码输入框,点击点击在 Patette的JSF HTML一栏下的 Secret Input即可加入此标签,可以通过在 Properties视图的 Quick Edit 标签中编辑其属性。在⑩D:右侧的输入框中输入 password,在 Value:右侧输入框中输入值 #{ UserBean password},如前所述,这将把输入框的值和后台的受管Bean: UserBean的 password属性关联起来。当然,我们也可以直接键入标签,最后得到的代码如下所示 < h: input Secret id=" password"vaUe=戕 UserBean. passwor可"。 刘长炯著
MyEclipse 6 Java 开发中文教程 16 刘长炯著 节中创建的消息包的名字(不包含扩展名.properties),所以取值为 Messages(如果放在某 个包下面,对应的则应该是 com.xxxx.Messages),此时完整的代码如下所示: <f:loadBundle basename="Messages" var="bundle"/> 。当然,我们也可以直接将这段代码敲入页面源码中,效果是一样的。在代码编辑区键入的 时候,先敲入小于号 < ,稍等片刻就能够看到 MyEclipse 自动弹出的标记的完成提示,选 择一个后双击提示或者按下回车键,就能输入完整的标记,这样便于我们快速编写,如图 14.13 所示。 图 14.13 JSF 编辑器的代码自动完成提示 接下来要做的,是从刚才加载的国际化资源文件中,输出登录提示的信息,加入下列代 码即可: <h:outputText value="#{bundle.login_label}"/> 。在输入这段代码时,当我们键入 bundle.后,稍等片刻,它就能列出对应的属性文件中的 键列表,进行自动完成的提示,总之 JSF 编辑器在多方面都提供了完成提示,读者可以慢 慢体会。这段代码将会输出一段国际化的文字,从 bundle 中读取属性为 login_label 的主键 所对应的值,最终它会读取 Messages.properties 文件中(如果是中文环境则对读取中文的 Messages_zh_CN.properties 中的内容),并在运行时显示出来(最后的值是 Please Login: 或者中文的请登录:)。value 以#{}括起来表示这是一段动态的需要执行的属性代码,相当于 EL 表达式,类似于调用 Java 代码:bundle.get(“login_Label”);如果是 JavaBean,那么这 样的值会对应一个方法 bundle.getLogin_label()。在后面我们会看到表单输入框的取值将会 采用这样的方式和后台的 Managed Bean 中的属性值相对应,有个属于叫做 bind(绑定)。 如果写作 value=”请登录:”,那么这样是可以直接输出值的。如果不想记忆这段代码的话, 可以在 Patette 的 JSF HTML 一栏下可以找到对应的工具栏按钮: ,点击它 可以获得同样的一段 JSP 标签。 随后需要加入的是表单,点击在 Patette 的 JSF HTML 一栏下的 即可加入表单 标记:<h:form></h:form>。 接着我们将光标放在表单中,然后给用户名添加一个文本输入框,点击点击在 Patette 的 JSF HTML 一栏下的 即可加入此标签,可以通过在 Properties 视图的 Quick Edit 标签中编辑其属性。在 ID:右侧的输入框中输入 userName,在 Value:右侧输入框中输 入值#{UserBean.userName},如前所述,这将把输入框的值和后台的受管 Bean: UserBean 的 userName 属性关联起来。当然,我们也可以直接键入标签,最后得到的代码如下所示: <h:inputText id="userName" value="#{UserBean.userName}"></h:inputText>。 接下来要加入的是给 password 属性添加一个密码输入框,点击点击在 Patette 的 JSF HTML 一栏下的 即可加入此标签,可以通过在 Properties 视图的 Quick Edit 标签中编辑其属性。在 ID:右侧的输入框中输入 password,在 Value:右侧输入框中输入值 #{UserBean.password},如前所述,这将把输入框的值和后台的受管 Bean: UserBean 的 password 属性关联起来。当然,我们也可以直接键入标签,最后得到的代码如下所示: <h:inputSecret id="password" value="#{UserBean.password}"/>
MyEclipse6Jaa开发中文教程 接着我们在登录输入框前加入一点提示标签,同样的点击在 Patette的 JSF HTML 栏下的 Output Label,具体的设置就是每个Labe要对应一个输入框,如下所示 <h output Label for="userName"value=#bundle username_ label"></h:output> 标签的取值是从资源文件里读取的国际化信息,当然也可以设置静态值,for指定了这个 标签所对应的控件的id。其实这是和HTML里面的labe标签的用法是很相似的 最后一步,就是给我们的登录表单加入一个命令按钮了。JSF中的命令按钮功能很强大, 可以执行受管Bean中的任意的不带参数的返回值为字符串的方法,还可以加入事件监听器 (一个组件可能产生多种事件,例如树),把页面中的组件作为一个Java对象来使用。我 们先来看最简单的设置。将光标放在<h:fom>的前面,点击在 Patette的 JSF HTM一栏 下的 Command Button,即可在页面中加入一个命令按钮。此时在属性编辑器中将会显示可 以设置的属性,我们按照图1414来进行设置即可。 h L Quick edit Attributes 登 Action #User Bean login] ActionListene ubmi t Style Edit. Add 图14.14JSF的命令按钮属性 关于这些设置的相关说明我们简单加以介绍,如下表所示 名称 取值 说明 按钮的标识(名字) 登录 显示的文字(可以动态和静态) Action #User Bean. login] 点击按钮后执行的动作,对应着一个返回值为 字符串的方法 public String login0:也可以是 一个导航规则的名字 ActionListener示例# bean. doAct}动作监听器,需要编写一个事件监听方法 按钮的类型,包括 submit和 I reset 示例 color: red: left10px组件的CSS风格 Listeners 个或者多个类当前按钮的多个单独的事件处理监听器 最重要的属性当属 Action了,它有两种取值,一种是对应 Action类中的某个处理方法, 而另一种则是直接对应某个导航规则,这时候它的取值是纯字符串。在后面我们将会开发 个新的例子,给大家展示事件监听和另一种直接导航的处理方法。现在我们可以看到对应的 代码如下 <h: commandButton id="submit"type="submit"action=# UserBean login "value="KE 刘长炯著
MyEclipse 6 Java 开发中文教程 17 刘长炯著 接着我们在登录输入框前加入一点提示标签,同样的点击在 Patette 的 JSF HTML 一 栏下的 ,具体的设置就是每个 Label 要对应一个输入框,如下所示: <h:outputLabel for="userName" value="#{bundle.username_label}"></h:outputLabel> 。标签的取值是从资源文件里读取的国际化信息,当然也可以设置静态值,for 指定了这个 标签所对应的控件的 id。其实这是和 HTML 里面的 label 标签的用法是很相似的。 最后一步,就是给我们的登录表单加入一个命令按钮了。JSF 中的命令按钮功能很强大, 可以执行受管 Bean 中的任意的不带参数的返回值为字符串的方法,还可以加入事件监听器 (一个组件可能产生多种事件,例如树),把页面中的组件作为一个 Java 对象来使用。我 们先来看最简单的设置。将光标放在</h:form>的前面,点击在 Patette 的 JSF HTML 一栏 下的 ,即可在页面中加入一个命令按钮。此时在属性编辑器中将会显示可 以设置的属性,我们按照图 14.14 来进行设置即可。 图 14.14 JSF 的命令按钮属性 关于这些设置的相关说明,我们简单加以介绍,如下表所示: 名称 取值 说明 ID submit 按钮的标识(名字) Value 登录 显示的文字(可以动态和静态) Action #{UserBean.login} 点击按钮后执行的动作,对应着一个返回值为 字符串的方法:public String login();也可以是 一个导航规则的名字 ActionListener 示例:#{ubean.doAct} 动作监听器,需要编写一个事件监听方法 Type submit 按钮的类型,包括 submit 和 reset Style 示例:color:red;left:10px 组件的 CSS 风格 Listeners 一个或者多个类 当前按钮的多个单独的事件处理监听器 。最重要的属性当属 Action 了,它有两种取值,一种是对应 Action 类中的某个处理方法, 而另一种则是直接对应某个导航规则,这时候它的取值是纯字符串。在后面我们将会开发一 个新的例子,给大家展示事件监听和另一种直接导航的处理方法。现在我们可以看到对应的 代码如下: <h:commandButton id="submit" type="submit" action="#{UserBean.login}" value="登录