锁定老帖子 主题:Frails 介绍.
该帖已经被评为良好帖
|
|
---|---|
作者 | 正文 |
发表时间:2006-11-17
但是有些时候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 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2006-11-17
>比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.
post的严格使用,会让你的应用更安全。 |
|
返回顶楼 | |
发表时间:2006-11-18
alang 写道 >比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.
post的严格使用,会让你的应用更安全。 post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下. |
|
返回顶楼 | |
发表时间: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 不知道那位同学用过,有什么经验可以交流。 |
|
返回顶楼 | |
发表时间:2006-11-20
Java Studio Creator 2是不错, sun计划把它打造为于微软的Visual Studio向媲美的工具. 用来开发jSF还是比较方便的. 不过它拖出来的页面. 好像不是很好美化. 没有怎么用过它来开发页面
|
|
返回顶楼 | |
发表时间:2006-11-20
由于Java Studio Creator 拖拽的页面采用的是CSS定位,和以前做页面的感觉确实不同,整个应用风格也由其提供的theme包来提供,打开JSP源码面对的都是tag,美化起来多少有些问题,
我觉得其优点在于其数据访问是非常简单,利用JDBC CachedRowSet,像多记录同时修改这样的问题,实现起来异常简单。 |
|
返回顶楼 | |
发表时间:2006-11-20
icess 写道 alang 写道 >比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.
post的严格使用,会让你的应用更安全。 post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下. Get 还是 POST和网络通信紧不紧张没有任何关系。 |
|
返回顶楼 | |
发表时间:2006-11-20
dongbin 写道 icess 写道 alang 写道 >比如 Form数据的提交, JSF规范中为了维护服务端的组件树 只能使用Post提交, 而不可以使用Get. 而Get方法在很多地方还是非常有用的.
post的严格使用,会让你的应用更安全。 post是比较好, 但是有时候Get还是有用的, 尤其在网络通信比较紧张的情况下. 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传输的总数据量更少呢 |
|
返回顶楼 | |
发表时间:2006-11-21
icess是华工软院的么,
我和佳良一个年级的,2班的 呵呵, 终于见到frails了 呵呵 好久没去看了 |
|
返回顶楼 | |
发表时间:2006-11-21
yuesefa 写道 icess是华工软院的么,
我和佳良一个年级的,2班的 呵呵, 终于见到frails了 呵呵 好久没去看了 呵呵, 在javaeye还可以见到同学, 高兴. 我们是一班的. 1.2刚刚发布, 添加了一点特性. 你现在在学校吗? |
|
返回顶楼 | |