论坛首页 Java企业应用论坛

Frails 介绍.

浏览 14511 次
锁定老帖子 主题:Frails 介绍.
该帖已经被评为良好帖
作者 正文
   发表时间:2006-11-17  
使用JSF的人都知道,JSF本身是一个很优秀的Web Model 2框架, 具有很多优秀的思想.

但是有些时候JSF的使用还是不是十分方便. 尤其是对于初学者而言, 常常被一些莫明其妙的问题搞得晕头转向.
相信很多初学者都见到过这个Exception吧:

严重: Servlet.service() for servlet jsp threw exception
javax.servlet.jsp.JspException: Cannot find FacesContext

当我在学习JSF的时候,看到这个Exception我找了半天都没有发现我的代码哪里错了(代码不可能出错,因为是直接copy的书中的源代码 呵呵), 后来不经意间才发现原来访问页面的URL错了, 在JSF配置文件中配置的servlet映射为.jsf,所以访问的URL应该是 .... index.jsf, 而不是.... index.jsp., 就这么一点疏忽就让人白忙活了半天. 郁闷哦.

随着学习的深入,这种基本错误是很少再出现了(就算出现也可以马上知道问题的根本), 但是JSF其他的一些限制又是让人感到很郁闷的. 比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.

另外还有Faces API使用起来不是十分直接的问题, 要把一个数据放入到session中就要一大串的操作( FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put(name, val); ),让人感觉很不爽.

....

如果你经常遇到这些问题, 那么现在我将告诉你一个好消息, 有了Frails 这些问题都可以轻而易举的解决了.

我们先来看看Frails是什么?

在Frails主页上定义 http://frails.hexiao.cn/what-is-frails.html

what is frails?

Frails 是基于JSF上的一个开发效率和RoR可以向媲美的JavaEE框架 !

Ruby On Rails(RoR)因为在开发web程序的高效性而风行一时(可能现在仍然很热), 那些RoR的支持者说, RoR可以比java的开发效率高出10倍以上,我们对此观点持怀疑的态度. 我们相信,如果有正确的开发方法来支持现在的Java web framework,则 Java web开发的效率 不会如此的低下.所以 我们研究了一下RoR的实现机制,来实现我们Java框架中的RoR. 因此, 我们提供一个在开发效率上和RoR可以媲美的JavaEE开发框架 -- Frails !

知道了Frails是什么后, 我们再来看看Frails有什么特性, 能给JSF带来什么功能上的增强.


在Frails主页上列举了Frails的如下主要特性: http://frails.hexiao.cn/frails-features.html

Frails(Java Server Faces On Rails)基于Java Server Faces (JSF),并将提供对 Hibernate和Spring的支持. 主要特征如下:

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呢.

这个是很简单的.   你只需要在web.xml文件中添加下面的配置:

<filter>
<filter-name>FacesFilter</filter-name>
<filter-class>net.sf.frails.filters.FacesFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>FacesFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>


然后把你下载的frails4jsf1.X.jar 放到类路径中就可以使用了.

现在可以使用了, 你不禁要问, 如果在使用过程中我遇到了问题, 要到哪里得到帮助呢,如果我有好的Frails改进建议要到哪里提议呢.
关于frails的服务问题, 你可以到JavaCafe http://www.hexiao.cn/jsf/ 论坛的Frails专区中取得帮助.

ok, 这次Frails 简介就先到这里, 希望Frails能在你开发Java web app时给你带来一丝清爽.


资源:

Frails英文主页 http://frails.sf.net
Frails中文主页 http://frails.hexiao.cn
Frails中文论坛 http://www.hexiao.cn/jsf
   发表时间:2006-11-17  
>比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.

post的严格使用,会让你的应用更安全。
0 请登录后投票
   发表时间:2006-11-18  
alang 写道
>比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.

post的严格使用,会让你的应用更安全。


post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下.
0 请登录后投票
   发表时间:2006-11-19  
对SUN 的 Java Studio Creator 2 了解如何,SUN 的这个工具应用JSF实现WEB应用的类似VB的拖拽式开发,个人感觉这个工具还是不错的,组件式开发,配合转换器,验证器,页面导航器,dataProvider等,在Netbeans5.5中,其作为visual web 组件提供,还是看出来SUN 对此产品的信心。
SUN 的网站上也有一些简单的教程,作的还不错,

http://gceclub.sun.com.cn/prodtech/javatools/jscreator/index.html

不知道那位同学用过,有什么经验可以交流。
0 请登录后投票
   发表时间:2006-11-20  
Java Studio Creator 2是不错, sun计划把它打造为于微软的Visual Studio向媲美的工具. 用来开发jSF还是比较方便的. 不过它拖出来的页面. 好像不是很好美化. 没有怎么用过它来开发页面
0 请登录后投票
   发表时间:2006-11-20  
由于Java Studio Creator 拖拽的页面采用的是CSS定位,和以前做页面的感觉确实不同,整个应用风格也由其提供的theme包来提供,打开JSP源码面对的都是tag,美化起来多少有些问题,

我觉得其优点在于其数据访问是非常简单,利用JDBC CachedRowSet,像多记录同时修改这样的问题,实现起来异常简单。
0 请登录后投票
   发表时间:2006-11-20  
icess 写道
alang 写道
>比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.

post的严格使用,会让你的应用更安全。


post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下.



Get 还是 POST和网络通信紧不紧张没有任何关系。
0 请登录后投票
   发表时间:2006-11-20  
dongbin 写道
icess 写道
alang 写道
>比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.

post的严格使用,会让你的应用更安全。


post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下.



Get 还是 POST和网络通信紧不紧张没有任何关系。
1. get是从服务器上获取数据,post是向服务器传送数据。

    2. get是把参数数据队列加到提交表单的ACTION属性所指的URL中,值和表单内各个字段一一对应,在URL中可以看到。post是通过HTTP post机制,将表单内各个字段与其内容放置在HTML HEADER内一起传送到ACTION属性所指的URL地址。用户看不到这个过程。
 3. 对于get方式,服务器端用Request.QueryString获取变量的值,对于post方式,服务器端用Request.Form获取提交的数据。

 4. get传送的数据量较小,不能大于2KB。post传送的数据量较大,一般被默认为不受限制。但理论上,IIS4中最大量为80KB,IIS5中为100KB。

 5. get安全性非常低,post安全性较高。

对于只有一两个参数的提交, 在传输相同参数的情况下, 是get 还是post传输的总数据量更少呢
0 请登录后投票
   发表时间:2006-11-21  
icess是华工软院的么,
我和佳良一个年级的,2班的 呵呵, 终于见到frails了 呵呵 好久没去看了
0 请登录后投票
   发表时间:2006-11-21  
yuesefa 写道
icess是华工软院的么,
我和佳良一个年级的,2班的 呵呵, 终于见到frails了 呵呵 好久没去看了


呵呵, 在javaeye还可以见到同学, 高兴. 我们是一班的. 1.2刚刚发布, 添加了一点特性.
你现在在学校吗?
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics