1、JavaServer Faces,2/2,回顾,JSF 是一种事件驱动的 UI 组件模型。生命周期的几个阶段。JSF 与 Struts 的异同。,本章目标,1,JSF 标签,4,JSF 标签库,Taglib 指令,JSF 核心标签库,JSF HTML 标签库,使用 JSF 标签,.,5,JSF核心标签,类型转换器,标准转换器基本数据类型及其包装类BigDecimal、BigIntegerDate、Number自定义转换器实现 javax.faces.convert.Converter 接口,标准转换器(自动转换),基本数据类型及其包装类javax.faces.Booleanjavax.face
2、s.Integerjavax.faces.Characterjavax.faces.Longjavax.faces.Bytejavax.faces.Floatjavax.faces.Shortjavax.faces.DoubleBigDecimal、BigInteger javax.faces.BigDecimaljavax.faces.BigInteger,标准转换器,Date Number,自定义转换器,接口:javax.faces.convert.Converter public Object getAsObject(FacesContext context, UIComponent c
3、omponent, String str); public String getAsString(FacesContext context, UIComponent component, Object obj);,数据校验器,JSF 标准校验器:JSF 自定义校验器:实现 javax.faces.validator.Validator 接口,11,标准的转换器和验证器,编写一个填写付款信息的页面,付款信息包括付款金额、信用卡号、信用卡有效期,要求对输入的数据进行特定的转换和验证,8899,1234567898765,12/2005,12,示例代码,import java.util.Date;p
4、ublic class PaymentBean private double amount; private String card = ; private Date date = new Date(); public void setAmount(double newValue) amount = newValue; public double getAmount() return amount; public void setCard(String newValue) card = newValue; public String getCard() return card; public
5、void setDate(Date newValue) date = newValue; public Date getDate() return date; ,受管理的Bean, ,index.jsp, ,result.jsp,演示:示例1,事件处理,JSF 使用事件监听器(Event Listener)模型处理 UI 组件产生的事件。事件类型:1.动作事件(action event)2.值改变事件(value-change event),14,事件监听器,事件和监听器模型,提交,用户名:,欢迎!,Jerry,值更改事件,动作事件,15,事件和监听器模型,实现事件监听器,/实现 Action
6、Listenerclass CountryListener implements ActionListener public void processAction(ActionEvent event) throws AbortProcessingException /处理 ActionEvent 的代码 /实现 ValueChangeListenerclass EmployeeListener implements ValueChangeListener public void processValueChange(ValueChangeEvent event) throws AbortProcessingException /处理 ValueChangeEvent 的代码 ,注册监听器, ,在后台 Bean 中实现事件处理,/处理ActionEvent事件的方法public void click(ActionEvent e)/处理按钮或超链接的单击事件的代码,/处理ValueChangeEvent事件的方法public void select(ValueChangeEvent e)/处理列表或组合框的值选择事件的代码,JSF 生命周期,本章总结,1,JSF 标签库,作业,