`
fkpwolf
  • 浏览: 49813 次
  • 性别: Icon_minigender_1
  • 来自: 爱你就是认识我自己
文章分类
社区版块
存档分类
最新评论

在Netbeans 6.1中使用dojo开发自定义的JSF组件

阅读更多

0.准备和目的

前提:netbeans 6.1 beta。

目的:开发一个功能最简的JSF woodstock组件。

准备:Firefox + FireBug插件

 

1。新建一个普通的JSF组件

具体可以参考sun的教程 ,可以忽略其附加的高级功能,在IDE环境中可以很快的开发出一个标准JSF组件出来。

public class ImageRenderer extends javax.faces.render.Renderer{  

一切皆为标准的JSF组件。Renderer可以只考虑最简单的输出,不考虑viewstate。

然后,因为netbeans中页面使用的是xhtml的技术,将该tag运用到其中需如下工作:

xmlns:k="/WEB-INF/tlds/rrr"
 

这里没有考虑design-time的所需要的类。

2。woodstock组件

在前面的组件开发中,代码量比较大地方的在Renderer中的encodeBegin方法。这个方法主要用来产生客户端HTML代码,大量的使用了诸如如下的代码:

writer.startElement("img", imgComponent);
writer.writeAttribute("onClick", "javascript:" + postBackFuncName + "(this)", null); 

有些类似在Servlet输出HTML用到的out.println(),这种方法较之JSP之类的模板技术显得非常的蹩脚。于是在netbeans 6中引入了dojo和json,用来将逻辑和展现分离。如今javascript框架遍地开花,server端越来越多的页面渲染的工作交给了javascript,比如Rails使用了prototype,框架的使用大大的提高了javascript的潜能和开发效率。

woodstock 也即原来的jsf web ui,是Sun的一个JSF的实现,跟标准不同的是提供了更多的组件和AJAX support。如其button Renderer产生client html source code如下:

<span id="j_id17">
<script type="text/javascript">
  webui.suntheme.widget.common._createWidget('j_id17',
  {"id":"form1:button2","widgetType":"webui.suntheme.widget.button",
"visible":true,"primary":false,"value":"Button",
"escape":true,"mini":false,"disabled":false});
</script></span>

  不同于一般的<button name="" value=""/>“明文”的形式。这里调用的函数_createWidget基于dojo的功能,而{}的属性由在server段的Renderer中的java代码组装出来(利用json API),剩下的渲染工作都是client的浏览器中完成。

 3.将标准组件改造成woodstock组件

将标准JSF组件该为webui组件

import com.sun.webui.jsf.renderkit.widget.RendererBase;
public class MyRenderer extends RendererBase {

 这个类注意的地方不多,只要注意getWidgetType这个方法:

    protected String getWidgetType(FacesContext context, UIComponent component) {
        return "fan.kao";
    }

 这里返回的字符串代表新组件的名称,也是组件在dojo中的namespace。

 

在JSP中,由于该新的组件是woodstock本身没有的,为了避免修改原有的组件库的包,需要在页面中注册这个新的组件:

<script>webui.suntheme.dojo.registerModulePath("fan","/WebApplication1");</script>

这样,就可以把根目录下的js文件纳入dojo的module装载路径。

 至此,所有Java相关的工作已经完成,剩下的就和在dojo创建一个widget的过程一样,包括一个js文件,一个templete文件。

 

在开发过程中,可以使用FireBug插件来调试js相关的问题,dojo也对FireBug做了相应的支持。

 

 

1
0
分享到:
评论
1 楼 jzx19770812 2008-05-27  
怎么不写了呀?

相关推荐

    hibernate for netbeans 6.1

    3. **netbeans**:这个目录很可能包含了NetBeans插件或者项目模板,使得用户可以直接在NetBeans 6.1中使用Hibernate进行开发,无需手动配置大量细节。可能包括了库引用、服务提供者、快捷键等,以实现IDE与ORM框架的...

    编写JSF用户自定义UI组件(之五)

    虽然没有具体的压缩包文件内容可供参考,但从标题和标签中,我们可以推测这篇博客主要涵盖了JSF自定义组件的创建、配置、使用和测试等方面的知识,对于想要深入理解JSF框架和提升组件开发能力的开发者来说,是非常有...

    netbeans6.1英文版

    根据提供的文件信息,我们可以深入探讨NetBeans 6.1英文版的相关知识点,包括该版本的主要特点、安装步骤、以及在软件开发中的应用等。 ### NetBeans 6.1概述 NetBeans是一款开源集成开发环境(IDE),支持多种...

    使用NetBeans进行基础JSF开发

    通过以上步骤,初学者可以逐步掌握在NetBeans中使用JSF开发Web应用的基本流程。同时,随着经验的积累,还可以深入学习更多高级特性,如自定义组件、过滤器、监听器以及与EJB、JPA等其他Java EE技术的集成,以构建更...

    可用于NetBeans6.1 6.0修改启动参数的插件

    标题提到的“可用于NetBeans6.1 6.0修改启动参数的插件”是为了帮助用户自定义NetBeans在启动时使用的JVM参数。这在某些情况下是必要的,例如当需要调整内存分配、优化性能或启用特定的Java虚拟机(JVM)选项时。 ...

    NetBeans中JSF应用开发

    Managed Bean是JSF中的一个关键概念,它是一个Java类,其实例可以在JSF请求处理周期中被管理和访问。在faces-config.xml中声明 Managed Bean,并在Bean中定义处理表单数据的方法。同时,在web.xml或faces-config.xml...

    Developing Custom JSF Components For NetBeans Visual Web Pack.zip

    在JSF中,自定义组件是扩展其功能的关键手段,允许开发者根据特定需求创建自己的UI元素。 **NetBeans Visual Web Pack** 是NetBeans IDE的一个插件,专门针对JSF和Java EE Web应用开发。它提供了可视化设计工具,让...

    netBeans中导入已有的JSF应用程序

    在IT行业中,开发Web应用程序是常见的任务之一,而JavaServer Faces (JSF) 是一个用于构建用户界面的Java EE框架,常用于创建企业级的Web应用。NetBeans是一款功能强大的集成开发环境(IDE),它支持多种编程语言,...

    Netbeans6.5开发jsf

    在使用NetBeans 6.5进行JSF开发时,首先你需要创建一个新的Java Web项目。这可以通过依次选择菜单栏的 "File" -&gt; "New Project" -&gt; "Java Web" -&gt; "Web Application" 来完成。在向导中,你可以输入项目名称如 ...

    Netbeans 开发 JSF 2.0 入门学习,使用Primefaces 及JPA

    在本文中,我们将深入探讨如何使用Netbeans IDE进行JSF 2.0的开发,并结合Primefaces和JPA来创建高效、用户友好的Web应用程序。JSF(JavaServer Faces)是一种用于构建Java Web应用程序的MVC(模型-视图-控制器)...

    netbeans6.5中使用自定义的库

    在NetBeans 6.5这个流行的Java集成开发环境中,管理和引用自定义库以及第三方库是开发者进行项目开发时必不可少的技能。这个过程涵盖了从创建新的库到添加JAR文件,再到将库应用到项目中的具体步骤。以下是对这一...

    netbeans6.5开发JSF+Hibernate的一个小例子(视频)

    **标题与描述解析** 标题"netbeans6.5开发JSF+Hibernate的一个小例子(视频)"揭示了这个压缩包中...通过这个视频教程,初学者可以系统地了解JSF和Hibernate的结合使用,并掌握在NetBeans 6.5中开发这类应用的基本步骤。

    NetBeans下JSF增删改查

    在JSF中,可以使用 Managed Beans 来管理业务逻辑,这些Managed Beans与数据库交互,并将结果传递给JSF组件显示。 在这个例子中,我们可能会创建一个名为`Goods`的实体类,对应数据库中的商品表,包含如ID、名称、...

    让Struts2 在NetBeans 6中安家

    为了能够在项目中使用Struts2框架,我们需要创建一个Library来包含所有的Struts2库文件。具体操作如下: 1. 打开“Tools”菜单,选择“Libraries”。 2. 点击“New Library”,输入Library名称,例如“Struts2”,...

    使用ArcGIS Engine 开发自定义GIS应用

    8. **性能优化**:在开发过程中,理解如何优化地图渲染、数据处理速度,以及如何减少内存消耗,对于构建高效的应用程序至关重要。这可能涉及到多线程处理、数据缓存策略等技术。 9. **部署与授权**:完成开发后,...

    NetBeans中搭建C开发环境

    在本文中,我们将详细介绍如何在 NetBeans 中搭建 C 开发环境,包括软件下载、安装设置环境变量、编写 C 代码及 Makefile 文件的配置。 一、下载并安装必要软件 要在 NetBeans 中搭建 C 开发环境,需要下载并安装...

    JSF UI 组件详解

    在集成开发环境(IDE)中,开发者可以通过拖拽的方式来添加和配置JSF组件。大多数现代IDE(如Eclipse、NetBeans或IntelliJ IDEA)都内置了对JSF的支持,使得组件开发变得更加直观和简单。IDE通常会提供一个可视化的...

    NetBeans可视化Web开发之数据库应用开发

    7. **框架集成**:如果使用诸如Struts、Spring MVC或JSF等Web框架,学习如何在NetBeans中集成这些框架进行数据库应用开发。 8. **调试与测试**:掌握在NetBeans中进行单元测试和集成测试的技巧,确保数据库应用的...

Global site tag (gtag.js) - Google Analytics