??xml version="1.0" encoding="utf-8" standalone="yes"?> 作ؓ一名Frails的开发h员,我会l箋写很多关于Frails的文章。不q先在这里简单的展示一下Frails的几个特性,如果你要详细的察看用方法,请到 http://frails.hexiao.cn/user-guide.html URL?/xxx.jsp?paraName=Yes 那么paVa的值就是Yes?br /> q样׃得在setID的时候根据需要进行验证,而不必再写validateҎ?br /> 如果使用 JSFHelper,代码是如此的? 当然QJSFHelperq有很多其他的功能。如D功能Q能页面之间的数据最大化独立开Q之间的联系只需要规定有什么属性就可以了。(以后会详l介l:Frails下网站快速开发模式)
http://weblogs.java.net/blog/editors/archives/2006/12/break_on_throug.html
Java SE 6 goes final Two years ago, Java SE 6 was in about the same stage that Java SE 7 is today: it existed as a code-base, with ongoing development to existing features, and major features yet to be decided. Meeting with some of the engineers, it struck me that there was this thing that would be called Java SE 6 (actually we called it something else back then), and we didn't even know what it would be, but we did know precisely how we'd get there. And how we were getting there (and why the O'Reilly editors were at the meeting) was that it was to be an open-source development project on java.net, one which has been offering binary and source drops since late 2004. And as of today, Java SE 6 is final. So how did it work out? Probably the best sign of success is that that there were a number of outside contributors contributing code -- check out a podcast interview from the java.net booth at JavaOne in which I spoke with Brian Harry, Jesse Sterr, and Andy Tripp about their experiences contributing to JDK 6. So, before we turn our focus to JDK 7, let's take a minute to congratulate everyone who contributed to this major new release. After all, there's a lot in JDK 6. Its major new features are described in JSR-270, and include integrated web services, scripting language support, more desktop API's (including the famous SwingWorker), a compiler API, pluggable annotations, Swing L&F improvements, LCD subpixel rendering, XML digital signature API's, JDBC 4.0, and more. What are you waiting for? If you're on a supported platform, go download...
事实上,JSF的目标是相当不错的,希望代码人员能和工分离Qƈ且能够快速的开发。但是其中的一些有待解决的问题Q貌g初衷相违背:烦琐的配|,比较依赖开发工P不够灉|{等。直到Frailsq个JSF框架的诞生,JSF以往的烦恼都解决了。Frails能帮助你快速的开发JSFQ效率可以和ROR媲美Q?br />
你可以在Souceforge扑ֈq个目 https://sourceforge.net/projects/frails 。中文站?a >http://frails.hexiao.cn/ ?目前Frails的最新版本是1.2Q不q马?.0p发布了?br />
Frails的特性如下:
不需要配|faces-config.xml
再也不需要在faces-config.xml里一个个的写D规则Q注册ManageBean了。在Frails框架下注册一个ManageBean只需要在Bean的Class文g前加上@DefMbeanq样的Annotation可以了。而导航会Ҏ一定的D规则实现。比如导航去index.jsp可以直接返?index"可以了Q当Ӟq有更灵zȝ方式?br />
L实现GET
URL里加上参敎ͼ值对能够L的解析出来了Q甚至不需要写Ҏ。在一个String属性前加上@ParamQname=paramNameQ后Q这个属性就自动获得来自URL里paramName的倹{如Q?/p>@Param(name="paraName")
String paVa;
而在一个无q回Ҏ前加上@PreRender后,q个Ҏ回在页面渲染前调用Q提前获取一些相关的信息。如Q?/p>@PreRender
public void preRender()
{
//do something for rendering the page
}
当然了,Frails提供了让Ҏ在各个声明周期得到调用的AnnotationsQ不仅仅是预渲染?br />
从烦琐的验证中解?br /> Frails使得你能在申明一个属性的时候就能快速简单的加上一些限制条Ӟ成ؓq个属性的验证器。如?/p>@Prop
@ValidateNumber(required = true, max = "33", id = "indexForm:id", message = "error.id.invalid")
int id;
使用单、功能强大的JSFHelper
例如,如果一个对象要攑օHttpSession. 使用标准?Faces API, 代码如下: FacesContext.getCurrentInstance().getExternalContext()
.getSessionMap().put(name, val);
JSFHelper.putIntoSession(name, val);
q有很多Ҏ,帮助你快速开发JSF。当你真正体验过Frails后,你就回发现JSF一l天下的时代的来_
首先Q到www.netbeans.org上下载Visual Web Package( Technology Preview )Qƈ且安装好?不用截图了吧)
然后再创Z个新的工E?br />选择双Web下的Visual Web Application Qv个好名字?br />source structure 推荐选择 Java BluePrint QJAVA蓝图标准Q,或者?Jakarta ?br />L Set source level to 1.4 前面的钩 Q要不然׃用JDK1.4开发了?br />其他的根据自己需要的讑֮好,点击 Finish 整个目创建好了?br />
?Project H口中可以看?BluePrint 下的本项目结构。应该一看就明白Q?br /> Themes 目录下有IDE自带的三个主题,可以Ҏ需要要Q简单的切换整个目Web的主题。对于我q样不怎么懂得CSS的h来说是个音Q对于那些美工来_可以专门的编辑这些主题,供开发h员直接用,很方ѝ?br /> Page Navigation 是可视化的页面导航配|(当然也可以直接写XML配置Q,可以让你把页面里可以有导航作用的lgQ或者整个页面)通过拖拽到其他页面来自动配置面的导航规则,同时l该lg加上return "toXXPage"的方法?br /> 清晰的将三种 Managed Bean 分类列D出来Q很直观?br /> Configuration File 下有熟悉?faces-config.xml ?web.xml 。其?web.xml 可以让你可视化(如同选择、填表一P配置 Web ?Filter、Sevlet、Security、XML、General、Pages、Refference信息。以前这些复杂的配置都在q里可以很方便的q行了?br />
下面我们开始实现可以加入书{URLQ也是GETh
打开一个Page, 组件托盘里的HyperLink拖拽到页面中_作ؓD入口。请CQ实现GETh的导航必L链接cdQ而不能是按钮{动作类型的?img height="315" alt="o_components.jpg" src="http://www.aygfsteel.com/images/blogjava_net/chords/18284/o_components.jpg" width="195" align="right" border="0" />
在属性框里更改其TextQ让q个链接昄成ؓ你想要的文字。或者在本链接上点又键,选择Data BindingQ将其绑定到一个属性上Q以后详l介l)?br />
然后Q在本链接属性框里的URL后写上 faces/page2.jsp?name=XXX
注意Q一定要以faces/开?。导航机制自动的你的项?http://localhost/yourProject/ 映射?faces/ 下,然后faces/ 又将映射?web/ 下。所以用NetBean Visual Web开发的JSF部v后,如果要定位到某个面Q其名字不是 xxxPage.facesQ?font color="#ff0000">而直接是 xxxPage.jsp ! q且Qhttp://localhost/yourProject/ 自动映到本项目下默认的其实页面(讄Ҏ是右键点要设为默认v始的面Q选设|ؓ起始面卛_Q。在上面的URL也可以输入绑定表辑ּ和运表辑ּQ其中page2.jsp代表了就是你要导航到的页面,"?"后面是“参数名字=值”的形式Qƈ且多个的参数和值对之间?amp;链接Q下面你看到简单的Ҏq些参数名字获取到值的Ҏ?br />
新徏一个叫page2的页面(Ҏ很多Q不用介l了吧)Q从lg托盘中选择 Static Text 拖入到页面中Q在属性面版中更改 ID ?output 以便我们以后方便的用。点击页面编辑器?Java 按钮Q进入到本页面的 Request Bean Q?q个 Bean 是在生成本页面时候自动生成的Q与面同名q且?Request 范围的,主要是负责面的表C和逻辑。Visual Web会自动的为页面上每个lg生成相应的JAVA代码Q也是_你可以在q个面内动态的控制面内每个组件的属性?br />
下面我们要在 public void prerender() { }Ҏ中写上代码。 prerender() Ҏ是负责在面生成前做好一切准备的工作的,如同其名字一P预渲染。所以我们要在这个时候把刚才通过GETҎ传到本页面的参数提取出来。方法很单: public void prerender()
{
String name = (String) getExternalContext().getRequestParameterMap().get("name");
if( name != null )
this.output.setText(name);
}
通过getRequestParameterMap()p获得所有的 参数名-?的MAPQ即可从中轻杄取得惌的参数g?br />
最后我们将 Static Text 的D|ؓname参数的|大致的展示了我们能获得一个GETh了!q样可以让用户此面保存C{(收藏夹)Qƈ且动态的获取信息Q而不再是仅仅依靠内部D机制了?br />
l果我就不在q里展示了,自己动手体验下吧Q?br />
具体日程如下Q?br />
12?6日,全天QSun 技术日
上午9Q?0 Q- 下午5Q?0
09:00 -- 09:30, Open Source at
09:30 -- 09:45, SCJP
09:45 -- 10:00, Break
10:00 -- 11:00, EJB 3.0 and Java Persistence
11:00 -- 12:00, Developing
12:00 -- 13:00, Free Lunch for
13:00 -- 14:00, Building Java
14:00 -- 15:00, Web 2.0 and AJAX
15:00 -- 15:15, Break
15:15 -- 16:45, Developing
16:45 -- 17:00, Gift Distributi
今天的开放日zd虽然说是针对企业的,但是整体的内容还是较为入?貌似q是q寚w专业JAVA人士的宣传目的进行的。到场的听众也如SUN公司估计的,能力层次不齐Q比如在介绍SPARC技术的时?-当然提法是包装成很现代的 XXX Thread技?-有h不明白ؓ什么现在的速度瓉是I/O处理上,特别是CPU对内存的速度差问题,从而不了解SPARCQ也是RISCQ精指o集)指o执行方式Q重叠方式和水U方式)和多路发带来的优势。当Ӟq些都是计算机组成原理的问题了,实际上跟JAVA本n没有很大的关p,只是SUN公司的品而已。所以,在这里就不拘泥细节和旁枝了,主要l大家介l下跟JAVA相关的信息动态?br />
首先Q大会介l了SUN的最新动态,q里介绍三个让我比较感兴的Q就不重提SPARC了……)
Leader in RFID
RFIDQ无U射频识别)的应用将回越来越受到重视。由于可以将M物体Q包括hQ加上一个独一无二的微标{,q且可以Ҏ不同需要,在不同的距离范围内读取出来,q样实C物理世界和信息世界的资源整合。所以War-Mart能够通过卫星实时的追t全球的物流情况Qd国Metro可以实现市无h快速自助付䏀?br />
Poineers Utility Computing
也就是现在正行的网根{网l就是计机Q网格的目的是让计机接上|络p计算Q就像是电器插上甉|一L单。ȝ说来h以下Ҏ:
Simple plug and play
Use when you want
Muti resource
q且听参q与|格研究的学长说Q网D东西q就是只能用JAVA来写。看来实现这个远大目标的重Q完全压在JAVAw上了,真是光荣Q?br />
Smart Dust
具体是哪一期我不记得了Q我只模p记得在2-3q前Q科学美国hQScientific AmericanQ杂志就刊登q微(Smart DustQ的理论。简单的说就是,在物理世界中掺入如同埃一样微ƈ且大量的探测器,q行实时的监控。例如,Smart Dust混合在凝土里,p实时搜集到用q些混凝土盖成大楼的l构内部受力状态等信息{。现在实际运用的是美国LA的一片v域中攄了Smart DustQ来q行生态科学试验?br />
下面p入到正题?/font>
Solaris 10
今天让我最意外的收h让我了解了不原本没有怎么兛_的SOLARIS 10的信息,q且让我感觉到S 10真是一个强大的操作pȝ?br />
New Features
Evolution Net Performence
较ؓ前一个版本的SOLARIS 9Q?0版本最显著直观的改善是|络性能有了明显的提升。原?版本的网l是Z的技术,虽然使用灉|方便Q但是十分消耗时_SOLARIS 10改变了基于流的特性,在最q方面的改动相当大?br />
Dtrace -Intrument every line in every App.
Dtrace ( Data Trace )p是给应用E序街上无数的探针(ProbeQ一P时刻监视着应用E序的情况,q且实时的做出反应。只要你写一些脚本,整个pȝ成Z应用E序的保姆,时刻监控Q保护者你的应用正常的q{?br />
Security
在安全方面,SOLARIS下了功夫,例如在̎L理上,开机重启的账号Q一般是ROOTQ可以不是整个系l最高权限的账号Q充分考虑Cpȝ理安全的方斚w面?br />
更值得一提的是Container的概念,cM分时pȝ是在旉层面上把操作pȝ化做不同的时间片断给不同的用P让用h受到自己在独占一个操作系l一PContainer是在I间层面上,把Solaris 10划分为多个小的容器,每个容器内装载不同的应用E序或者是操作pȝQ让其中的用h觉自己是在独占整个操作系l。用Container可以在硬盘分区、虚拟机、操作系l和应用E序四个层面上进行虚拟化QVisualizationQ,q且在Solaris 10本n的操作体l层面上Ҏ个Containerq行监控和操作。也是_你完全可以在Solaris 10下装多个版本的Linux操作pȝQƈ且不同的用户使用不同的版本,让用户完全感受到自己在用一个完全独立的Linux。理ZSolaris 10下可以同时跑8000个应用,但是实际试中是3000个,也已l非常惊ZQ?br />
在Container的帮助下QSolaris 10L的实C以下Ҏ:
Live Migration
End-to-end Data Integrity
Immense Data Capacity
Easier Admin
Huge Performence Gains
在介l完后,我咨询了在场资深的Solaris 10工程师关于Container下能不能跑WindowsQ要是在Solaris 10下同时跑上Unix Linux & Windows那不q歪了Q哈哈)Q他说目前是不可能实现的了,不是SUN不想做,是MS不愿意。(预料之中Q?br />
令h惊喜的是Q如此优U的Solaris 10是一个完全开源的操作pȝQQ何对Solaris 10感兴的人都可以加入到Solaris 10的开发社区来QA献自q一份力? 详见 http://www.opensolaris.org
JDK 6
JDK 6已经是RC版本了,据SUN工作人员说最q在明年初发布正式版本。网上介lJDK 6的文章应该超U多Q开放日当天也只是将6的新Ҏ再重复了以ơ,但是要注意的是,SUN公司官方取消了MUSTANG的说法,直接UC为JDK 6Q原因是卛_正式发布了,要注意避免用他人注册名的问题?br />
主要新特性有
JSR 199(Java Compiler API 规范) 提供了Java~译器API
JSR 269(Pluggable Annotation Processing API) 提供了一个处理元数据注释的API
JSR 221 JSR223 JSR173 JSR222 JSR224 …?大家自己在网上可以轻杄扑ֈQ或者直接上http://dev.java.net
另外QJDK 6q包含了一些小Ҏ,如:
Free Disk File L的查询硬盘剩余空?br />Class Path c\径查?br />Improved Out of Memory Handling 对Out of Memory的Error可以q行捕获和操作了
Java Desktop Integration
Improved Jconsole
NetBeans
SUN公司NetBeans单独出现的时候,它表C的是一U^台。在介绍的时候,屏幕上展CZ众多通过NetBeansq_开发的产品Q他们有的是国国防部的软gQ有的是企业软gQ但外表看v来都和NetBeans IDE差不多,毕竟大家都出自同一q_吗,使用的组仉是一L?br />
接着是介绍NetBeans IDE了,完全是拿着Eclipse作ؓ竞争Ҏ一板一眼的对着qӀ可惜演C用的代码提C功能简直就?50U别的,是个IDE应该有的功能。对我来_一提vNetBeans IDEQ那是让h百感交集Q又爱又恨啊。爱的原因是QNetBeans IDE本np带了SE和EE开发工P相对来说占用资源较少Q恨的原因是Q其BUG不计其数Q字体难看到Ӟ代码提示性格古怪(可能是我用Eclipse多了吧)和愚蠢(q个是可以比较出来的Q,让一个程序员得花不少功夫去适应。但是,NetBeans IDE有几个插件是非常值得推荐得:
Profiler Package
能对你得开发程序进行性能监视和分析,帮助你直观了解程序性能Q和快速找到症lƈ优化。简直就象教U书里的U程调度时序C意图一P让你清晰的看见所有线E在“赛跑”,以及其他资源的情c?br />
Visual Web Package
不得不提出,q个插g包BUG是最多的Q而且有些是毁灭性的Q我有亲w经历)Q但是他实现了JSF的可视化开发,q且在BluePrint下,成功实现了MVC三者分ȝ目标。在q个插g包的帮助下,JSF的快速、分工开发变成了可能QؓJSF成ؓ下一代标准下了一又有分量的砝码?br />注意QSUN工作人员提醒Q由于Visual Web Packageq只是Technology Preview版本Q连个ALPHA都不是)Q如果要惛_际开发的花,q是使用Creator比较靠得住(因ؓVisual Web Package是在NetBeans IDE上Creator的移植)?br />
M说来Q这ơSUN技术开放日的收莯是相当多的,让我了解了不以前没有机会了解的内容Q明了JAVA未来的发展方向。JAVAq是最有前途的?/p>