网络编程 | 站长之家 | 网页制作 | 图形图象 | 操作系统 | 冲浪宝典 | 软件教学 | 网络办公 | 邮件系统 | 网络安全 | 认证考试 | 系统进程
Firefox | IE | Maxthon | 迅雷 | 电驴 | BitComet | FlashGet | QQ | QQ空间 | Vista | 输入法 | Ghost | Word | Excel | wps | Powerpoint
asp | .net | php | jsp | Sql | c# | Ajax | xml | Dreamweaver | FrontPages | Javascript | css | photoshop | fireworks | Flash | Cad | Discuz!
当前位置 > 网站建设学院 > 网络编程 > Java
Tag:注入,存储过程,分页,安全,优化,xmlhttp,fso,jmail,application,session,防盗链,stream,无组件,组件,md5,乱码,缓存,加密,验证码,算法,cookies,ubb,正则表达式,水印,索引,日志,压缩,base64,url重写,上传,控件,Web.config,JDBC,函数,内存,PDF,迁移,结构,破解,编译,配置,进程,分词,IIS,Apache,Tomcat,phpmyadmin,Gzip,触发器,socket
网络编程:ASP教程,ASP.NET教程,PHP教程,JSP教程,C#教程,数据库,XML教程,Ajax,Java,Perl,Shell,VB教程,Delphi,C/C++教程,软件工程,J2EE/J2ME,移动开发
本月文章推荐
.JAVA基础知识(6).
.分页JavaBean.
.Java串行端口技术协议.
.反汇编器-javap.exe.
.Java数据流——企业级数据流分析.
.java api之交互操作性.
.Java应用技巧:对于 Cookie 的操.
.深入探索CORBA对象生命周期之慨述.
.Servlet传送对象给Applet使用.
.P2P (Peer-to-peer technology) .
.Sun 发布Java EE .
.Spring技巧之活用FactoryBean.
.Java入门:代码的坏味道.
.java中关于html的转换.
.很不错的JAVA学习笔记.
.Java Web Start的作用.
.在蹉跎中一路前行:谈微软.NET技.
.Java语言已成为手机通讯标准 微软.
.HelloWorld 攻略.
.一个非常简单,非常短小的线程池.

用JBuilder2007开发扩展JSF标签的插件

发表日期:2008-1-5



  本文将编写一个基于JSF标签的名为"locallyDefinedBean"插件。JSF标签可以在运行时将Bean变量加到jsp-JSF而中,在这里,我们将通过使用JSF EL(所谓JSF EL就是JSF EXPRESSION LANGUAGE)来模拟在设计时向JSP-JSF添加变量的过程。下面是具体的实现过程。

  1. 首先,使用File->New->Project->Plug-in Project来建立一个空的插件工程,这个工程使用JBuilder2007提供的默认值,并在工程名中输入myplugin。如图1所示:

用JBuilder2007开发扩展JSF标签的插件(图一)
图1

  2. 打开工程浏览器,切换到dependencies标签。并加入如图2所示的依靠库。

用JBuilder2007开发扩展JSF标签的插件(图二)
图2 dependencies标签

  3. 通过File->New->Class建立一个Java类: LocallyDeclaredBeanFactory.,并使这个类从org.eclipse.jst.jsf.context.symbol.internal.provisional.source.AbstractContextSymbolFactory继续。如图3所示。

用JBuilder2007开发扩展JSF标签的插件(图三)
图3

  4. 打开Java源码编辑器。你将看到两个根据抽象类自动产生的方法。然后将supports方法替换为我们自己的supports方法。代码如下:

public boolean supports(IAdaptable context)
{
 return context.getAdapter(IStrUCturedDocumentContext.class) != null;
}
  上面的代码表示只能调用IstructuredDocumentContext工厂。进入讨论组讨论。

  5. 使用如下的代码替换internalCreate中的代码

protected ISymbol internalCreate(String symbolName, int scope, IAdaptable context, List problems)
{
 //得到上下文
 final IStructuredDocumentContext sContext =(IStructuredDocumentContext)
context.getAdapter(IstructuredDocumentContext.class);
 // 为上下文建立一个DOM上下文
 final IDOMContextResolver domResolver =
IStructuredDocumentContextResolverFactory.INSTANCE.getDOMContextResolver(sContext);

 if (domResolver != null)
 {
  final Node curNode = domResolver.getNode();

  // node必须是XML属性
  if (curNode instanceof Attr)
  {
   final Attr attr = (Attr) curNode;
   final Node owningElement = attr.getOwnerElement();
   if (owningElement != null)
   {
    IProject iProject = workspaceResolver.getProject();
    if (iProject != null)
    {
     return handleSymbolCreation(symbolName, sContext, attr, owningElement, iProject);
    }
   }
  }
 }
 return null;
}
  6. 下面让我们加一个private方法来建立符号(Symbol)。


上一篇:instanceof和回调概念 人气:890
下一篇:抽象类对象类和对象包装类 人气:842
浏览全部Java的内容 Dreamweaver插件下载 网页广告代码 祝你圣诞节快乐 2009年新年快乐