用JBuilder2007开发扩展JSF标签的插件
2008-01-05 08:29:08 来源:WEB开发网核心提示:本文将编写一个基于JSF标签的名为"locallyDefinedBean"插件,JSF标签可以在运行时将Bean变量加到jsp-JSF而中,用JBuilder2007开发扩展JSF标签的插件,在这里,我们将通过使用JSF EL(所谓JSF EL就是JSF EXPRESSION LANGUAGE)来模
本文将编写一个基于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所示:
图1
2. 打开工程浏览器,切换到dependencies标签。并加入如图2所示的依靠库。
图2 dependencies标签
3. 通过File->New->Class建立一个java类: LocallyDeclaredBeanFactory.,并使这个类从org.eclipse.jst.jsf.context.symbol.internal.provisional.source.AbstractContextSymbolFactory继续。如图3所示。
图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)。
- ››开发Android 日历教程
- ››开发学院总结 Win 8实用技巧大全
- ››开发学院原创教程:把win8的IE10放桌面上方法(非...
- ››开发者眼中的Windows Phone和Android
- ››开发学院教你用SQL 语句最快速清空MySQL 数据表的...
- ››扩展Axis2框架,支持基于JVM的脚本语言
- ››扩展WebSphere Portal V6个性化功能
- ››扩展JavaScript的时候,千万要保留其原来的所有功...
- ››开发一个自己的HTML在线编辑器(一)
- ››开发一个自己的HTML在线编辑器(二)
- ››开发者在App Store上赚的钱比在Android Market上多...
- ››开发者应深入学习的10个Android开源应用项目
更多精彩
赞助商链接