|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)server|web|交互|站点在创立交互式收集使用方面,JavaServerFaces(以下建成为JSF)相对诸如JavaServerPages或ApacheStruts同等类手艺而言具有良多上风。JSF非常明晰地分别了使用逻辑层与用户界面暗示层,进步了收集使用软件的保护才能,JSF同时还供应了一个架构用于开辟和重用收集用户界面组件。
良多收集使用程序的开辟者正在转移到JSF下去,但他们同时也发明预界说的JSF用户界面组件遭到DHTML功效的限定。一些初级使用,比方监控或商务历程监测,必要和JSF架构兼容的初级视觉组件。 在JSF架构的尺度之上开辟自界说的用于收集图形用户界面的组件是一件轻松的事变,这些组件能够被使用程序员重用。并且,收集组件的开辟者如今能够供应加倍庞大的组件,同时能够包管开辟者能够轻松的享用这些组件带来的上风和便当。这些JSF用户界面组件必需简便地整合与部署到JSF运转时架构,并且在使用软件计划过程当中,还要较好地整合到供应JSF撑持的集成开辟情况(IDE)中
除JSF自带的基础的用户界面架构以外,在第一次开辟自界说组件的时分,开辟者还会碰到一些缺点和停滞。在这篇文章傍边,我们将要先容怎样构建图形化的JSF组件,这类组件利用纯HTML长短常难以完成的。图形化JSF组件的特征的地方在于,不但必要天生DHTML,并且还必要一些分外的图形天生与客户端交互的撑持。我们将利用一个图表组件的例子来演示,这个图表组件是用来供应图表和各类客户真个扫瞄与交互功效。最初,将展现怎样将图表组件整合到撑持JSF的集成开辟情况中。在了解了这个图表组件的计划历程以后,开辟者将对怎样完成图形化的JSF组件有更深切的了解,但愿可以对他们开辟自界说的JSF图形组件有所匡助。
甚么是JavaServerFaces?
JSF是一个尺度的服务器端架构,用于简化收集使用软件暗示层的构建。开辟职员能够组装这些可复用的用户界面组件来创立网页,将这些组件绑定到使用程序的数据源,并使用服务器真个事务处置器来处置客户端事务。根据JSF标准,组件开辟者所制造的组件能够简便地整合到JSF运转时架构,并且在使用软件计划过程当中,还能够整合到与JSF兼容的集成开辟情况中。JSR127标准界说了如许的JSF架构,还同时供应了好比输出栏和按钮等基础用户界面组件的可供参考的完成。JSF组件中的尽年夜部分都切合HTML2.0尺度中的HTML组件和标签的标准。这些绝对复杂的组件关于良多收集使用程序来说已充足了。
但是,良多使用程序,好比监控或监测体系,必要更庞大的数据暗示与交互,比方图表、图示和映照等。由于在HTML中间接天生庞大图形的才能无限,以是计划这些初级组件也其实不直不雅。一种办理计划就是让服务器真个组件将图片传送到客户端,但是,这会带来它本身的成绩由于最基础的HTML的图片交互功效是很无限的。以是,最初必需利用JavaScript来完成用户的数据扫瞄与交互功效。
创立复杂的JSF组件
本文将这部分将形貌一个十分复杂的JSF组件的开辟步骤,这个组件的功效是将CSS导进到一个HTML的网页上。这个复杂组件的形貌和代码将作为基本常识,为下一部分持续解说初级JSF图表组件打下基本。
展现了怎样利用组件及其了局
<br>
利用这一组件的优点在于,只需经由过程JSF举措往改动组件的设定值就可以够改动全部页面的表面。
一个JSF组件由一些Java类和设置文件构成,为了创立一个自界说的JSF组件,开辟职员必要:
1.编写一个扩大JSF基本组件类的Java类
2.为默许的衬着工具编写一个衬着器
3.编写一个Java类来形貌标签,这个标签将用于JSP页面
4.编写一个标签库界说文件
5.编写一个JSF设置文件
步骤1:开辟组件的Java类
组件类将卖力办理代表组件形态的属性,因而,我们必需依据组件的举动(如输出组件或输入组件),为组件选择得当的基类。
在列表A中形貌的组件扩大了javax.faces.component.UIOutput,以显现指向某个款式表文件的URL,或内联式款式表的内容。
列表A
importjavax.faces.component.*;
publicclassCSSComponentextendsUIOutput{
privateBooleanlink;
publicStringgetFamily(){
return"faces.CSSFamily";
}
publicbooleanisLink(){
if(link!=null)
returnlink.booleanValue();
ValueBindingvb=getValueBinding("link");
if(vb!=null){
Booleanbvb=(Boolean)vb.getValue(FacesContext.
getCurrentInstance());
if(bvb!=null)
returnbvb.booleanValue();
}
returnfalse;
}
publicvoidsetLink(booleanlink){
this.link=newBoolean(link);
}
publicObjectsaveState(FacesContextcontext){
returnnewObject[]{super.saveState(context),link};
}
publicvoidrestoreState(FacesContextcontext,
ObjectstateObj){
Object[]state=(Object[])stateObj;
super.restoreState(context,state[0]);
link=(Boolean)state[1];
}
}
代码中“联系关系”的属性划定了值的范例:要末是一个URL,要末是内联款式。该组件还必需可以在向服务器发送哀求时代,利用经由JSF架构处置过的对象,来存储并恢复本人的形态。JSF架构主动挪用saveState和restoreState办法,我们能够在组件中完成这两种办法来到达这一方针。
[1][2]下一页
用winrar打包j2ee的程序和用IDE打包应用程序是一样的。按照你的想法,你是不是也希望服务器都整合由一家公司提供呢? |
|