快速业务通道

JSF 1.2入门,第1部分 构建基本应用程序 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-15
问题,肯定会破坏 DRY(don''t repeat yourself)原则。

JSF 1.2入门,第1部分 构建基本应用程序(12)

时间:2011-08-09 IBM Richard Hightower

以全局方式修改消息

为了以全局方式修改消息,需要在 faces-config.xml 文件中定义一个资源束并用它重新定义默认的 消息,见清单 21:

清单 21. 在 faces-config.xml 中配置消息

<?xml version="1.0" encoding="UTF-8"?> <faces-config xmlns="http://java.sun.com/xml/ns/javaee"    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"    xsi:schemaLocation="http://java.sun.com/xml/ns/javaee    http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd"    version="1.2">    <application>      <message-bundle>messages</message-bundle>    </application>   ...

message.properties 文件包含清单 22 所示的条目:

清单 22. 消息资源束(messages.properties)

javax.faces.component.UIInput.REQUIRED_detail=required javax.faces.converter.IntegerConverter.INTEGER_detail=not a valid number

现在已经以全局方式修改了必需字段检验或整数转换失败时显示的消息。

注意:如果使用 Eclipse JEE,那么一定要将 src/main/resources/messages.properties 添加为源 文件夹。

本节中所做的改进增加了应用程序的 GUI 逻辑,所以在下一节中将添加一个 CalculatorController 类,它会注入 Calculator 类。

添加控制器

现在要重构这个应用程序,不要把纯 Java Calculator 对象绑定到 JSF,以避免 JSF 和 POJO 之间 有紧密联系。这需要创建一个控制器类并把纯模型对象注入这个控制器类。这个控制器类将能够感知 JSF ,但是模型类不了解 JSF 的任何情况。

本节讨论:

使用 JSF 的依赖性注入容器

处理 JSF facesContext

添加 FacesMessage

使用 h:messages

将组件绑定到控制器

下面依次执行每个步骤。然后,我会回过头来详细解释每个步骤。

在 Calculator 中添加一个 divide() 方法

首先,在 Calculator 中添加一个 divide() 方法(见清单 23),以便从 “被零除” 异常中恢复并 添加一个 FacesMessage 向用户显示消息:

清单 23. 在 Calculator POJO 中添加一个 divide() 方法

package com.arcmind.jsfquickstart.model; /** * Calculator. Simple POJO. * * @author Rick Hightower */ public class Calculator {    /** First number used in operation. */    private int firstNumber = 0;    /** Result of operation on first number and second number. */    private int result = 0;   ...    /** Divide the two numbers. */    public void divide() {     this.result = this.firstNumber / this.secondNumber;    }    /** Clear the results. */    public void clear () {    result = 0;    }   ... }

JSF 1.2入门,第1部分 构建基本应用程序(13)

时间:2011-08-09 IBM Richard Hightower

创建控制器类

接下来,添加一个称为 CalculatorController 的新类,它接收 Calculator POJO。

有三个 JSF 组件绑定到 CalculatorController。它能够感知 JSF。它还通过将 FacesMessages 放在 FacesContext 中,从异常中恢复。

绑定到 CalculatorController 的三个 JSF 组件是:

resultsPanel,这是一个 UIPanel

firstNumberInput,这是一个 UIInput

secondNumberInput,这是一个 UInput

图 9 显示 Calculator 应用程序如何处理错误:

图 9. “被零除” 异常

JSF 1.2入门,第1部分 构建基本应用程序 - 编程入门网

图 10

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号