使用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 19:27
- 浏览 11657
- 评论(19)
- 论坛回复 / 浏览 (19 / 14497)
- 查看更多
相关推荐
JSF-Frails入门学习资料
**Frails 框架详解** `Frails`,全称 `Faces On Rails`,是一个专为 Java Web 开发者设计的开源框架。这个框架的核心目标是通过引入注解驱动的开发模式,来极大地简化使用 JavaServer Faces (JSF) 构建应用程序的...
基于java网上球鞋竞拍系统设计与实现.docx
基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip基于bert实现关系三元组抽取python源码+数据集+项目说明.zip 个人大四的毕业设计、课程设计、作业、经导师指导并认可通过的高分设计项目,评审平均分达96.5分。主要针对计算机相关专业的正在做毕设的学生和需要项目实战练习的学习者,也可作为课程设计、期末大作业。 [资源说明] 不懂运行,下载完可以私聊问,可远程教学 该资源内项目源码是个人的毕设或者课设、作业,代码都测试ok,都是运行成功后才上传资源,答辩评审平均分达到96.5分,放心下载使用! 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载学习,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可用于毕设、课设、作业等。 下载后请首先打开README.md文件(如有),供学习参考。
基于java的足球赛会管理系统设计与实现.docx
基于java的婚纱摄影网的设计与实现.docx
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
基于java的农产品仓库管理系统系统设计与实现.docx
【作品名称】:基于Java swing +mysql(Oracle)实现的飞机订票系统项目(含毕业论文+答辩 ppt+双数据库版本源码) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 系统功能需求 本系统用于远程机票预订,包括远程航班信息查询、机票预订与确认等;主要分为四大功能:查询、订票、退票和管理。 管理员登录、注销 到系统并进行插入、删除、更新以及查看机票后台数据库操作 插入:机票的插入可以按照航班号、班期、公司、座位号、起飞地以及抵达地等等插入数据库。 删除:机票可以按照航班号、起止城市、星期进行删除 3.1.1客户端系统功能 1.普通用户: 查询:根据航班号、航空公司以及目的地查询出票类信息 订票: 根据出发日期和第一航班号预订机票,机票类型分为单 【资源声明】:本资源作为“参考资料”而不是“定制需求”,代码只能作为参考,不能完全复制照搬。不一定能够满足所有人的需求,需要有一定的基础能够看懂代码,能够自行调试代码并解决报错,能够自行添加功能修改代码。
2018信基广场“红动佛山”春节新媒体营销方案.pptx
均包含代码,文章,部分项目包含ppt
基于java的蜀都天香酒楼的网站设计与实现.docx
1、开发环境:SSM框架;内含Mysql数据库;VUE技术;内含说明文档 2、项目代码都经过严格调试,代码没有任何bug! 3、该资源包括项目的全部源码,下载可以直接使用! 4、本项目适合作为计算机、数学、电子信息等专业的课程设计、期末大作业和毕设项目,作为参考资料学习借鉴。 5、本资源作为“参考资料”如果需要实现其他功能,需要能看懂代码,并且热爱钻研,自行调试。
基于java的英语单词学习网站设计与实现.docx
基于java企业销售人员培训系统设计与实现.docx
2019优益C x 易烊千玺微博营销案结案报告.pptx
基于java的单位人事管理系统设计与实现.docx
该网站采用SSM框架和Eclipse编辑器、MySQL数据库设计并实现的。网站功能包含系统用户管理、图书管理、用户管理、借书管理、续借管理、违章缴款管理等模块。 首页是网站的入口,主要包含了:新闻信息、图书信息等导航功能。 用户有独立的注册界面,用户填写好注册信息后,会有个一审核的过程,经过管理员审核注册成功,并将注册的信息加入用户表中。 项目关键技术 开发工具:IDEA 、Eclipse 编程语言: Java 数据库: MySQL5.7+ 后端技术:ssm 前端技术:Vue 关键技术:springboot、SSM、vue、MYSQL、MAVEN 数据库工具:Navicat、SQLyog
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用
项目工程资源经过严格测试可直接运行成功且功能正常的情况才上传,可轻松复刻,拿到资料包后可轻松复现出一样的项目,本人系统开发经验充足(全领域),有任何使用问题欢迎随时与我联系,我会及时为您解惑,提供帮助。 【资源内容】:包含完整源码+工程文件+说明(如有)等。答辩评审平均分达到96分,放心下载使用!可轻松复现,设计报告也可借鉴此项目,该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的。 【提供帮助】:有任何使用问题欢迎随时与我联系,我会及时解答解惑,提供帮助 【附带帮助】:若还需要相关开发工具、学习资料等,我会提供帮助,提供资料,鼓励学习进步 【项目价值】:可用在相关项目设计中,皆可应用在项目、毕业设计、课程设计、期末/期中/大作业、工程实训、大创等学科竞赛比赛、初期项目立项、学习/练手等方面,可借鉴此优质项目实现复刻,设计报告也可借鉴此项目,也可基于此项目来扩展开发出更多功能 下载后请首先打开README文件(如有),项目工程可直接复现复刻,如果基础还行,也可在此程序基础上进行修改,以实现其它功能。供开源学习/技术交流/学习参考,勿用于商业用途。质量优质,放心下载使用