为了正常的体验网站,请在浏览器设置里面开启Javascript功能!

AnyFo+-+RichFaces打狗棒法

2011-05-18 27页 doc 710KB 10阅读

用户头像

is_863104

暂无简介

举报
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打狗棒法
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,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索