Frails诞生,JSF一统WEB天下不再是梦想?

发表于:2007-06-11来源:作者:点击数: 标签:
【引自Chords 的博客】长久以来,JSF一直没有成为WEB框架的主流,不仅是遗留系统的原因,JSF原始的标准并没有使得 开发 简化和清晰。一直不断有这样或者那样的小问题阻碍着JSF成为绝对主流。 事实上,JSF的目标是相当不错的,希望代码人员能和美工分离,并且

【引自Chords的博客】长久以来,JSF一直没有成为WEB框架的主流,不仅是遗留系统的原因,JSF原始的标准并没有使得开发简化和清晰。一直不断有这样或者那样的小问题阻碍着JSF成为绝对主流。

事实上,JSF的目标是相当不错的,希望代码人员能和美工分离,并且能够快速的开发。但是其中的一些有待解决的问题,貌似与初衷相违背:烦琐的配置,比较依赖开发工具,不够灵活等等。直到Frails这个JSF框架的诞生,JSF以往的烦恼都解决了。Frails能帮助你快速的开发JSF,效率可以和ROR媲美!

你可以在Souceforge找到这个项目 https://sourceforge.net/projects/frails 。中文站为http://frails.hexiao.cn/。目前Frails的最新版本是1.2,不过马上2.0就要发布了。



Frails的特性如下:

◆Frails 让开发者使用约定(习惯)和注解(annotations)来省略在 faces-config.xml 文件中 managed-bean 和 navigation-rule的配置。

◆Frails 提供一个更简单的方法来使用 Faces API。

◆Frails 重定向非 faces 请求为一个 faces 请求,这样可以避免因为URL输入的疏忽导致的异常。

◆Frails 提供一些预定义的 Managed Bean 基类让开发者扩展 。

◆Frails 可以让开发者在 Managed Bean 中使用注解(Annotation)来支持AOP功能,如 函数拦截(method interception)。

◆Frails 提供 Managed Bean 属性的injection 和 outjection

◆Frails 中的Hibernate GenericDao 对象提供了基本的 CRUD 函数 和 其他一些有用(常用)的数据访问函数。

◆Frails 还提供了一些有用的注解(annotations)来简化JSF的开发。

◆Frails 完全支持 jsf 1.1 和 jsf 1.2 规范,并且可以自动的探测你使用的版本。

◆Frails 提供了对action Method 和 Listener 函数的增强,在这些函数中现在你可以传递参数了。



作为一名Frails的开发人员,我会继续写很多关于Frails的文章。不过先在这里简单的展示一下Frails的几个特性,如果你要详细的察看使用方法,请到 http://frails.hexiao.cn/user-guide.html

不需要配置faces-config.xml



再也不需要在faces-config.xml里一个个的写导航规则,注册ManageBean了。在Frails框架下注册一个ManageBean只需要在Bean的Class文件前加上@DefMbean这样的Annotation就可以了。而导航会根据一定的导航规则实现。比如导航去index.jsp就可以直接返回"index"就可以了,当然,还有更灵活的方式。

轻松实现GET

       

URL里加上参数-值对能够轻松的解析出来了,甚至不需要写方法。在一个String属性前加上@Param(name=paramName)后,这个属性就自动获得来自URL里paramName的值。如:

@Param(name

=

"

paraName

"

)

String paVa;

URL是./xxx.jsp?paraName=Yes 那么paVa的值就是Yes。



而在一个无返回方法前加上@PreRender后,这个方法将回在页面渲染前调用,提前获取一些相关的信息。如:

@PreRender

public

void

preRender()

{   

//

do something for rendering the page

}

当然了,Frails提供了让方法在各个声明周期得到调用的Annotations,不仅仅是预渲染。

从烦琐的验证中解脱



Frails使得你能在申明一个属性的时候就能快速简单的加上一些限制条件,成为这个属性的验证器。如下:

@Prop

@ValidateNumber(required

=



true

, max

=



"

33

"

, id

=



"

indexForm:id

"

, message

=



"

error.id.invalid

"

)



int

id;

这样就使得在setID的时候根据需要进行验证,而不必再写validate方法。

使用简单、功能强大的JSFHelper



例如,如果一个对象要放入HttpSession。使用标准的 Faces API,代码如下:

FacesContext.getCurrentInstance().getExternalContext()

.getSessionMap().put(name, val);

如果使用 JSFHelper,代码是如此的简单:

JSFHelper.putIntoSession(name, val);

当然,JSFHelper还有很多其他的功能。如导航功能,能将页面之间的数据最大化独立开,之间的联系只需要规定有什么属性就可以了。(以后会详细介绍:Frails下网站快速开发模式)

还有很多特性,帮助你快速开发JSF。当你真正体验过Frails后,你就会发现JSF一统天下的时代的来临!

【责任编辑:火凤凰 TEL:(010)68476606-8007】


原文转自:http://www.ltesting.net

评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
...