- 浏览: 420515 次
- 性别:
- 来自: 上海
文章分类
最新评论
-
zxjlwt:
学习了http://surenpi.com
java.lang.LinkageError解决办法。 -
zqb666kkk:
/**
*
* @param filepath
...
Java删除目录及目录下的所有文件 -
zqb666kkk:
f.exists() && f.isDirec ...
Java删除目录及目录下的所有文件 -
coldrain2014:
在线api文档 http://online.code1314. ...
JavaMail java.lang.NullPointerException -
timeroading1:
chxkyy 写道xx175194716 写道真佩服,把jar ...
Activiti 学习记录3 之Activiti源代码及默认h2数据库连接
问题描述:
要写一个继承<rich:dataTable>的组件。
环境:
- tomcat 6.0.14
- myfaces1.1.5
- richfaces 3.1.2
相应的配置文件如下:
<?xml version="1.0" encoding="UTF-8"?> <web-app xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.4" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"> <context-param> <param-name>contextConfigLocation</param-name> <param-value> classpath:spring-platform-base.xml,classpath:spring-platform-service.xml </param-value> </context-param> <listener> <listener-class> org.springframework.web.context.ContextLoaderListener </listener-class> </listener> <description>Platform Application</description> <display-name>Platform</display-name> <context-param> <param-name>javax.faces.DEFAULT_SUFFIX</param-name> <param-value>.xhtml</param-value> </context-param> <context-param> <param-name>facelets.REFRESH_PERIOD</param-name> <param-value>2</param-value> </context-param> <context-param> <param-name>facelets.DEVELOPMENT</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>javax.faces.STATE_SAVING_METHOD</param-name> <param-value>server</param-value> </context-param> <context-param> <param-name>com.sun.faces.validateXml</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>com.sun.faces.verifyObjects</param-name> <param-value>true</param-value> </context-param> <context-param> <param-name>org.ajax4jsf.VIEW_HANDLERS</param-name> <param-value>com.sun.facelets.FaceletViewHandler</param-value> </context-param> <context-param> <param-name>org.ajax4jsf.COMPRESS_SCRIPT</param-name> <param-value>false</param-value> </context-param> <filter> <display-name>Ajax4jsf Filter</display-name> <filter-name>ajax4jsf</filter-name> <filter-class>org.ajax4jsf.Filter</filter-class> </filter> <filter-mapping> <filter-name>ajax4jsf</filter-name> <servlet-name>Faces Servlet</servlet-name> <dispatcher>FORWARD</dispatcher> <dispatcher>REQUEST</dispatcher> <dispatcher>INCLUDE</dispatcher> <dispatcher>ERROR</dispatcher> </filter-mapping> <servlet> <servlet-name>Faces Servlet</servlet-name> <servlet-class>javax.faces.webapp.FacesServlet</servlet-class> <load-on-startup>1</load-on-startup> </servlet> <servlet-mapping> <servlet-name>Faces Servlet</servlet-name> <url-pattern>*.jsf</url-pattern> </servlet-mapping> <login-config> <auth-method>BASIC</auth-method> </login-config> <welcome-file-list> <welcome-file>index.jsp</welcome-file> <welcome-file>index.html</welcome-file> </welcome-file-list> <!-- 标签配置开始 --> <!-- 标签配置结束 --> </web-app>
tag组件源文件:PFHtmlTableGridTag.java
import javax.faces.component.UIComponent; import javax.faces.webapp.UIComponentTag; public class PFHtmlTableGridTag extends UIComponentTag { public PFHtmlTableGridTag() { System.out.println("hello world"); } @Override public String getComponentType() { return "PFHtmlTableGrid"; } @Override public String getRendererType() { return null; } @Override protected void setProperties(UIComponent component) { super.setProperties(component); } @Override public void release() { super.release(); } }
component组件PFHtmlTableGrid.java
import java.io.IOException; import java.util.Date; import javax.faces.component.html.HtmlDataTable; import javax.faces.context.FacesContext; import javax.faces.context.ResponseWriter; public class PFHtmlTableGrid extends HtmlDataTable { @Override public void encodeBegin(FacesContext context) throws IOException { ResponseWriter writer = context.getResponseWriter(); writer.startElement("div", this); writer.writeAttribute("style", "color:red", null); writer.writeText("Hello World! today is:"+new Date(), null); writer.endElement("div"); } @Override public void encodeEnd(FacesContext context) throws IOException { } @Override public void decode(FacesContext context) { super.decode(context); } @Override public String getFamily() { return null; } }
faces-config.xml相应配置:
<component> <component-type> PFHtmlTableGrid </component-type> <component-class> com.dongyun.platform.component.jsf.tablegrid.PFHtmlTableGrid </component-class> </component>
标签库文件(存放在WEB/INF目录下):
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE taglib PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.2//EN" "http://java.sun.com/dtd/web-jsptaglibrary_1_2.dtd"> <taglib> <!-- ============== Tag Library Description Elements ============= --> <tlib-version>1.2</tlib-version> <jsp-version>1.2</jsp-version> <short-name>tags</short-name> <uri>/WEB-INF/tags.tld</uri> <display-name>bookstore</display-name> <description> This tag library contains tags used by the bookstore application. </description> <!-- ===================== tags for image map component ============================ --> <tag> <name>tableGrid</name> <tag-class> com.dongyun.platform.component.jsf.tablegrid.PFHtmlTableGridTag </tag-class> <description> Description of a single hotspot in a client side image map. This tag MUST be nested inside a <map> tag. To specify the hotspot characteristics, you must specify EITHER a value OR the alt, coords, and shape attributes. </description> </tag> </taglib>
引用该自定义标签的页面:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xmlns:rich="http://richfaces.org/rich" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:a4j="http://richfaces.org/a4j" xmlns:cd="/WEB-INF/tags.tld" xml:lang="en" lang="en"> <head> <title>日志管理界面</title> <meta http-equiv="keywords" content="enter,your,keywords,here" /> <meta http-equiv="description" content="A short description of this page." /> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <cd:tableGrid /> </body> </html>
tomcat正常启动没有问题。但是当用firefox打开这个Log.jsf页面时,什么东西都没显示出来。
查看其原代码如下:
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd" > <html xmlns="http://www.w3.org/1999/xhtml" xmlns:cd="/WEB-INF/tags.tld" xml:lang="en" lang="en"> <head> <title>日志管理界面</title> <meta http-equiv="keywords" content="enter,your,keywords,here" /> <meta http-equiv="description" content="A short description of this page." /> <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> </head> <body> <cd:tableGrid></cd:tableGrid> </body> </html>
是不是xhtml什么地方没配对,为什么
<cd:tableGrid></cd:tableGrid>
还显示在页面上呢?
大家帮我看看。谢谢了!
评论
1 楼
chxkyy
2008-01-08
问题解决,拿出来与大家分享。
xhtml用的是JSF facelet的组件。
所以自定义的不是tld标签,即不用tags.tld
而是要创建facelet的标签库。
默认的扩展名:taglib.xml
这里是tags.taglib.xml(一般放在/WEB-INF/classes/META-INF下)
定义的方法与tags.tld差不多。
xhtml用的是JSF facelet的组件。
所以自定义的不是tld标签,即不用tags.tld
而是要创建facelet的标签库。
默认的扩展名:taglib.xml
这里是tags.taglib.xml(一般放在/WEB-INF/classes/META-INF下)
定义的方法与tags.tld差不多。
发表评论
-
richfaces ajax特性的一点小提示(为什么数据传不到后台去?)
2008-06-25 11:22 2113问题描述: 页面文件: <h:outputText va ... -
<f:selectItems>空值问题
2008-06-24 11:49 3064报错的代码: java.lang.NullPointerExc ... -
richfaces3.1.2升级到3.2.1中遇到的问题。
2008-06-05 11:55 14331。org.richfaces.component.UIDat ... -
rich:modalPanel 与 form的关系
2008-05-27 17:00 1744<rich:modalPanel>不能放在form ... -
richfaces3.1.2 modalPanel文档的一点小bug
2008-05-27 14:57 2778在richfaces_reference.pdf P298 原 ... -
JSF Validation Error: Value is not valid错误
2008-04-25 16:32 5373问题提出: 平台:Richfaces,Jsf,Spring,E ... -
<f:convertDateTime> 时间显示不对问题
2008-04-21 10:49 7360在输出日期时,在Java里java.util.Date类型的对 ... -
xhtml下用jsp标签方法
2008-04-16 13:41 25741- use f:verbatim jsf tag 2- u ... -
JSF VS Tapestry 全面比较
2008-04-16 13:26 2136目 前应用很广泛而且也很成熟的Struts应用开发框架, ... -
RichFaces <a4j:commandButton>传参数
2008-03-27 17:00 5562转自:http://livedemo.exadel.com/r ... -
jsf参数传递2
2008-03-27 12:48 7为了避免使用Session的一 ... -
JSF本地化过程中出现乱码问题解决
2008-03-26 13:05 2903JSF本地化的基本配置。首先要在faces-config.xm ... -
augmentIdReference 错误
2008-03-24 14:08 1245把HtmlMessage写在后台的BackBean如下所示: ... -
如何创建自定义验证器?
2008-03-21 14:46 1684下面是一个email验证器的示例: EmailValida ... -
JSF 生命周期总结
2008-02-01 08:53 3263当一个http 请求来临的时候,首先会调用FacesServl ... -
JSF Id冲突解决办法
2008-02-01 08:46 1889在jsf中,页面组件如果是由页面标签与后台的程序一起生成的话, ... -
Ajax4jsf 和 <h:message> 一起使用时候的问题
2008-01-21 10:23 3420如果在页面中使用了<a4j:commandButton& ... -
jsf页面参数的传递及加载数据(转)
2008-01-16 16:29 4233转自:http://www.blogjava.net/ ... -
richfaces调试方法
2008-01-14 17:43 1826用到<a4j:log>这个标签示例如下:<a ... -
JSF+Facelets+Tomahawk的笔记(转贴)
2008-01-08 16:23 1520转自:http://www.cnblogs.com/phoen ...
相关推荐
它扩展了Apache MyFaces和JSF(JavaServer Faces),提供了一系列强大的UI组件和事件处理机制,帮助开发者创建交互性强、用户体验良好的Web应用。本文档将详细介绍RichFaces的主要组件及其用法,并通过实际例子来...
RichFaces还提供了一个组件开发工具包(CDK),简化了自定义富组件的创建。CDK包含代码生成器和类似JSP语法的模板工具,使得创建具有Ajax功能的高级组件变得简单高效。 资源管理是RichFaces的另一大亮点。它支持将...
JSF还支持自定义组件的开发,以满足特定需求。 **3. a4jEchoText组件** 在提供的文件列表中,"a4jEchoText"可能是一个示例组件,它可能来自于RichFaces的a4j库。a4j库是RichFaces的一部分,提供了对AJAX功能的扩展...
- **组件开发工具**:RichFaces的组件开发工具(CDK)简化了自定义组件的创建,包括代码生成器和JSP语法模板,使创建Ajax功能的组件变得更加容易。 - **资源管理**:资源框架允许将资源与自定义组件一起打包到jar...
1. **组件开发包(CDK)**:为了方便开发者创建自定义组件,RichFaces提供了一套组件开发工具包(CDK)。该工具包包括代码生成器和模板工具,采用类似JSP的语法,帮助开发者避免重复劳动,轻松创建带有Ajax功能的...
- **可扩展性:** 通过自定义组件和行为,开发者可以轻松地扩展框架的功能。 **6. RichFaces的应用场景:** RichFaces适用于需要复杂交互、动态更新和丰富用户体验的Web应用,如企业级应用、电子商务平台、数据管理...
- **RichFaces框架概述:** RichFaces是一个基于JavaServer Faces(JSF)的开源组件库,提供了大量的富客户端组件以及对皮肤的支持。该文档详细介绍了如何在Web应用中集成并使用RichFaces框架。 - **技术需求:** ...
- **JavaServer Faces实现和框架**:RichFaces设计为与多种JSF实现和框架兼容,例如MyFaces、Mojarra等。请确认你的项目使用的JSF实现与RichFaces兼容。 - **支持的服务器**:RichFaces可在多个应用服务器上运行,如...
RichFaces 3.2 是一款强大的框架,提供了丰富的组件库以及可定制化的皮肤支持,它旨在简化Web应用程序的开发过程,尤其在JavaServer Faces (JSF) 技术的基础上增加了对AJAX的支持,使得开发者能够构建出更为交互式的...
3. **皮肤和主题**:RichFaces允许开发者自定义组件的外观和风格,通过CSS和皮肤机制,可以轻松调整应用的整体视觉效果。 4. **事件处理**:RichFaces支持JSF的生命周期事件,包括初始化、提交、验证等,并提供了...
myfaces API的灵活性体现在其可扩展性上,开发者可以自定义组件、渲染器、EL函数,甚至可以扩展生命周期阶段。此外,myfaces API与其他开源库如Tomahawk、RichFaces等结合使用,可以构建出功能更加强大的Web应用程序...
RichFaces的皮肤和主题系统允许开发者自定义组件的外观,适应不同的品牌风格。4.0.0.Final版本引入了更多预设的主题,如Aqua、GlassX和Moon,同时也支持自定义主题,使得UI设计更加灵活多样。 四、事件处理 ...
对于采用Sun JSF参考实现或Apache MyFaces的项目,指南详细阐述了如何针对这两种框架进行优化设置,确保RichFaces组件的高效运行。 ### 3. Facelets与JBoss Seam支持 此外,Facelets模板引擎和JBoss Seam框架的集成...
RichFaces是一个基于Apache licensed的开源项目,它是Apache MyFaces的扩展,专注于提供丰富的JavaScript组件和Ajax功能。RichFaces 3.1.0是该框架的一个重要里程碑,它集成了AJAX技术,显著提升了Web应用的用户体验...
3. **Apache MyFaces**:对于 Apache MyFaces,需要特别注意与 RichFaces 的集成问题,以确保组件能够正常工作。 4. **Facelets 支持**:Facelets 是一种视图技术,可以与 JSF 结合使用,提供更灵活的页面布局方式...
RichFaces是一款功能强大的开源JavaScript库与Java Server Faces (JSF) 集成的组件库,它提供了丰富的用户界面组件以及Ajax支持,大大简化了Web应用程序的开发过程。此文档旨在详细介绍RichFaces 3.3.3版本的功能...
首先,RichFaces框架是基于Apache MyFaces JSF(JavaServer Faces)的组件库,它的主要目标是简化富客户端应用的开发。在3.2.1.GA版本中,它包含了丰富的UI组件和事件处理机制,能够帮助开发者创建功能丰富、用户...
手册介绍了RichFaces的皮肤机制,包括为何需要皮肤支持、如何使用、示例展示、参数表格、自定义皮肤文件的创建与使用、内置皮肤功能、标准控件的皮肤化、客户端脚本扩展、XCSS文件格式和Plug-n-Skin机制,全面展示了...