AnyFo+-+RichFaces打狗棒法AnyFo - RichFaces 打狗棒法 “打狗棒法,棒棒打狗……” 主编:安坤 版本:V.071115 目录 TOC \o "1-3" \h \z \u 目录 2 1 RichFaces基础 2 1.1 环境搭建 2 1.2 默认皮肤更换 3 1.3 解决MyEclipse没有正常部署项目的问题 3 2 组件 4 2.1 4 2.1.1 作用 4 2.1.2 编写事件监听类 4 2.1.3 编写页面 4 2.2 5 2.2.1 页面 5 2.2.2 Bean类 5 2.3 6 2.3.1 页面 6 2.3.2 Be...
AnyFo - RichFaces 打狗棒法 “打狗棒法,棒棒打狗……” 主编:安坤 版本:V.071115 目录 TOC \o "1-3" \h \z \u 目录 2 1 RichFaces基础 2 1.1 环境搭建 2 1.2 默认皮肤更换 3 1.3 解决MyEclipse没有正常部署项目的问题 3 2 组件 4 2.1
4 2.1.1 作用 4 2.1.2 编写事件监听类 4 2.1.3 编写页面 4 2.2 5 2.2.1 页面 5 2.2.2 Bean类 5 2.3 6 2.3.1 页面 6 2.3.2 Bean类 7 2.4 8 2.4.1 页面 8 2.4.2 Bean类 9 2.4.3 11 2.5 14 2.5.1 页面 14 2.5.2 Bean类 15 2.6 17 2.6.1 样子 17 2.6.2 页面 17 1 RichFaces基础 1.1 环境搭建 1. 首先搭建JSF环境。 2. 将RichFaces的包考到ClassPath下。 3. 在Web.xml中将节点写成: 4. 在Web.xml中添加: org.richfaces.SKIN blueSky RichFaces Filter richfaces org.ajax4jsf.Filter richfaces Faces Servlet REQUEST FORWARD INCLUDE 1.2 1.3 默认皮肤更换 org.richfaces.SKIN blueSky 可选择的默认皮肤有: • DEFAULT • plain • emeraldTown • blueSky • wine • japanCherry • ruby • classic • deepMarine 1.4 解决MyEclipse没有正常部署项目的问题 有时,没有部署,但又不报错,可以: 将Project从Server中Remove,然后在Deploy。 2 组件 2.1 2.1.1 作用 发request到后台类中。 2.1.2 编写事件监听类 package action_listener; import org.ajax4jsf.event.AjaxEvent; import org.ajax4jsf.event.AjaxListener; public class CommandListener implements AjaxListener { public void processAjax(AjaxEvent arg0) { System.out.println( "\nI am here!" ); } } 2.1.3 编写页面 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater 2.1.4 2.1.5 页面 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater 2.1.6 2.1.7 Bean类 package command_button; import java.io.Serializable; public class Bean implements Serializable { private String ericMsg = ""; private String name = ""; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEricMsg() { return ericMsg; } public void setEricMsg(String ericMsg) { this.ericMsg = ericMsg; } public void callEric() { this.ericMsg = this.name + " is calling Eric!"; this.name = this.ericMsg; System.out.println( this.ericMsg ); } public void clear() { this.ericMsg = ""; this.name = ""; } } 2.1.8 2.1.9 页面 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater 2.1.10 2.1.11 Bean类 package command_button; import java.io.Serializable; public class Bean implements Serializable { private String ericMsg = ""; private String name = ""; public String getName() { return name; } public void setName(String name) { this.name = name; } public String getEricMsg() { return ericMsg; } public void setEricMsg(String ericMsg) { this.ericMsg = ericMsg; } public void callEric() { this.ericMsg = this.name + " is calling Eric!"; this.name = this.ericMsg; System.out.println( this.ericMsg ); } public void clear() { this.ericMsg = ""; this.name = ""; } } 2.1.12 2.1.13 页面 有一个按钮,一点,下面的列表就自动填充数据。 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater 2.1.14 Bean类 2.1.14.1 Car类 这个类是放在Collection中的对象。 package dataGrid; import java.io.Serializable; public class Car implements Serializable { private String name; private int price; public Car( String name, int price ) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } 2.1.14.2 CarList类 这个才是给界面上的空间直接调用的类。 package dataGrid; import java.io.Serializable; import java.util.Vector; public class CarList implements Serializable { private Vector carList = new Vector (); public Vector getCarList() { return carList; } public void setCarList(Vector carList) { this.carList = carList; } public void clear() { this.carList.clear(); System.out.println( "clear!" ); } public void showCarList() { Car c1 = new Car( "Eric", 1000 ); Car c2 = new Car( "Janet", 2000 ); Car c3 = new Car( "Vivi", 3000 ); Car c4 = new Car( "Coco", 4000 ); this.carList.add( c1 ); this.carList.add( c2 ); this.carList.add( c3 ); this.carList.add( c4 ); } } 2.1.15 2.1.15.1 页面 有一个按钮,一点,下面的列表就自动填充数据。 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater
2.1.15.2 Bean类 2.1.15.3 Car类 这个类是放在Collection中的对象。 package dataGrid; import java.io.Serializable; public class Car implements Serializable { private String name; private int price; public Car( String name, int price ) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } 2.1.15.4 CarList类 这个才是给界面上的空间直接调用的类。 package dataGrid; import java.io.Serializable; import java.util.Vector; public class CarList implements Serializable { private Vector carList = new Vector (); public Vector getCarList() { return carList; } public void setCarList(Vector carList) { this.carList = carList; } public void clear() { this.carList.clear(); System.out.println( "clear!" ); } public void showCarList() { Car c1 = new Car( "Eric", 1000 ); Car c2 = new Car( "Janet", 2000 ); Car c3 = new Car( "Vivi", 3000 ); Car c4 = new Car( "Coco", 4000 ); this.carList.add( c1 ); this.carList.add( c2 ); this.carList.add( c3 ); this.carList.add( c4 ); } } 2.1.16 2.1.17 页面 有一个按钮,一点,下面的列表就自动填充数据。 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> repeater 2.1.18 Bean类 2.1.18.1 Car类 这个类是放在Collection中的对象。 package dataGrid; import java.io.Serializable; public class Car implements Serializable { private String name; private int price; public Car( String name, int price ) { this.name = name; this.price = price; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getPrice() { return price; } public void setPrice(int price) { this.price = price; } } 2.1.18.2 CarList类 这个才是给界面上的空间直接调用的类。 package dataGrid; import java.io.Serializable; import java.util.Vector; public class CarList implements Serializable { private Vector carList = new Vector (); public Vector getCarList() { return carList; } public void setCarList(Vector carList) { this.carList = carList; } public void clear() { this.carList.clear(); System.out.println( "clear!" ); } public void showCarList() { Car c1 = new Car( "Eric", 1000 ); Car c2 = new Car( "Janet", 2000 ); Car c3 = new Car( "Vivi", 3000 ); Car c4 = new Car( "Coco", 4000 ); this.carList.add( c1 ); this.carList.add( c2 ); this.carList.add( c3 ); this.carList.add( c4 ); } } 2.2 2.2.1 显示图片 目前只能支持JPG(JPEG)、GIF、PNG三种。 整体思想: 将数据读取,然后传递给OutputStream。 2.2.1.1 显示数据库中通过IO流读出来的图片 2.2.1.1.1 读取数据的类 package test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.imageio.ImageIO; public class MediaBean { public void paint(OutputStream out, Object data) throws IOException{ // 定位到文件,模拟数据库读取,获得读取的IO流 InputStream is = new FileInputStream( "e:\\a.png" ); // 建立读取通道 Image src = javax.imageio.ImageIO.read(is); // 构造Image对象 int wideth=src.getWidth(null); // 得到源图宽 int height=src.getHeight(null); // 得到源图长 // 建立数据缓存 BufferedImage tag = new BufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB); // 设定缓存数据来源 tag.getGraphics().drawImage(src,0,0,wideth,height,null); // 开始读取 ImageIO.write(tag,"png",out); } } 2.2.1.1.2 页面 2.2.1.1.3 Bean配置 mediaData test.MediaData session 2.2.1.2 显示硬盘上的图片 2.2.1.2.1 读取数据的类 package test; import java.awt.Image; import java.awt.image.BufferedImage; import java.io.FileInputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import javax.imageio.ImageIO; public class MediaBean { public void paint(OutputStream out, Object data) throws IOException{ // 定位到文件 File file = new File( "e:\\a.png" ); // 建立读取通道 Image src = javax.imageio.ImageIO.read(file); // 构造Image对象 int wideth=src.getWidth(null); // 得到源图宽 int height=src.getHeight(null); // 得到源图长 // 建立数据缓存 BufferedImage tag = new BufferedImage(wideth/2,height/2,BufferedImage.TYPE_INT_RGB); // 设定缓存数据来源 tag.getGraphics().drawImage(src,0,0,wideth,height,null); // 开始读取 ImageIO.write(tag,"png",out); } } 2.2.1.2.2 页面 2.2.1.2.3 Bean配置 mediaData test.MediaData session 2.3 2.3.1 样子 2.3.2 页面 2.4 2.4.1 样子 2.4.2 页面 2.5 2.5.1 样子 2.5.2 页面 2.6 2.6.1 样子 2.6.2 页面 <%@ taglib uri="http://richfaces.org/a4j" prefix="a4j"%> <%@ taglib uri="http://richfaces.org/rich" prefix="rich"%> <%@ taglib uri="http://java.sun.com/jsf/html" prefix="h"%> <%@ taglib uri="http://java.sun.com/jsf/core" prefix="f"%> RF-921 Test Page 2.7 2.7.1 样子 2.7.2 页面 规范....." /> 2.8
2.8.1 用途 用来界面不局时,拉开上下两个组件间距离。 2.8.2 代码 2.9 2.9.1 样子 2.9.2 普通的静态tab类型 2.9.2.1.1 特点 每次换tab都要刷新页面。 2.9.2.1.2 页面 2.9.3 完全在客户端的类型 2.9.3.1.1 特点 整个tab会完全加载到客户端的浏览器中,通过JavaScript切换在客户端浏览器切换页面。 2.9.3.1.2 页面 2.9.4 AJAX类型 2.9.4.1.1 特点 通过AJAX机制动态的切换页面内容而不刷新本页。 2.9.4.1.2 页面
本文档为【AnyFo+-+RichFaces打狗棒法】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑,
图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。