JSF 中使用自定义 Navigation
2020-02-01 06:45
661 查看
过去的一段时间,一直有人拿 JSF 的 Navigation 当靶子,批评 JSF,其实细心的人会发现,在 Java 世界,这样的批评常常是很片面的,几乎所有成熟的应用框架,在除了实现某些默认的功能外,还保留一些扩展的接口,提供了相当的扩展性,比如说 struts, spring 等很多的 web framework 都提供了很多扩展的接口,当然,JSF 也一样。JSF 的 Navigation 中,我们一个 page 都有一个 from-view-id ,它的每个 navigation 出口 to-view-id 都必须定义,所以在不同的 from-view-id 中会有一些重复的 to-view-id,并且每当有一个新的 navigation 路径,我们都必须配置这个路径,才能够在 action 中正确的转向我们这个路径。很多情况下,这样的方式用起来都不是很爽,我们需要有一些简单的方式,我们在 action 事件中,直接 return 一个 page 的 path 就会直接 forward 到这个 page ,在用的时候会方便一些,有没有办法去做到呢?
答案是肯定的。
在 JSF 的 Specification 中 7.4 中对 Naviation 已经有很明确的规定了,在 JSF API 中,提供了 NavigationHandler 这样一个抽象类。
abstract void handleNavigation(FacesContext context, java.lang.String fromAction, java.lang.String outcome)
我们只要实现这样的抽象方法,就可以实现一个自己定制的 Navigation 实现,当然我们现在用的只是一个 Default 的实现了,如果你希望按照你自己的想法去 Navigation 你的 Application,那么很简单,你只要实现你自己的 handleNavigation 方法就可以了。
接着,需要在 face-config.xml 的 application 部分加入一些配置:
your navigation handle implement
试试看,在你的应用中,是不是已经按照你的 Navigation 在走了呢?
在 http://www.thearcmind.com/confluence/display/SpribernateSF/Spring+JSF+contribution+Round+2+NavigationHandlerSupport%2C+PrefixSuffixNavigationHandler 这篇文档中,给了我们一个参考的实现,它提供了两种方式来实现它的导航,我把相关的代码附在本文后面,大家可以参考并很容易把它应用到你自己的应用中去了。
http://www.blogjava.net/Files/steady/navigation.rar posted on 2006-05-29 08:52 steady 阅读(1595) 评论(2) 编辑 收藏 所属分类: JSF & Myfaces <!--
FeedBack: # re: JSF 中使用自定义 Navigation 2006-06-30 16:42 开源学习 请教一个问题
Faces Servlet
*.jsf
项目中并没有以。jsf为后劲缀的面页,jsf是如何解析的呢?
比如testjsf.jsp,当我打http://localhost:8080/XXX/testjsf.jsf自动解析testjsf.jspz这个面页!
why?
jiaj
2006-6-30 回复 更多评论
# re: JSF 中使用自定义 Navigation 2008-02-02 11:39 ghost 就我看到的情况是JSF会根据WEB根目录找到相应的文件,所以这种mapping只是后缀的重写而以,我也很想知道在JSF中是否可以将页面放到/WEB-INF/目录下而被访问的方法 回复 更多评论
答案是肯定的。
在 JSF 的 Specification 中 7.4 中对 Naviation 已经有很明确的规定了,在 JSF API 中,提供了 NavigationHandler 这样一个抽象类。
abstract void handleNavigation(FacesContext context, java.lang.String fromAction, java.lang.String outcome)
我们只要实现这样的抽象方法,就可以实现一个自己定制的 Navigation 实现,当然我们现在用的只是一个 Default 的实现了,如果你希望按照你自己的想法去 Navigation 你的 Application,那么很简单,你只要实现你自己的 handleNavigation 方法就可以了。
接着,需要在 face-config.xml 的 application 部分加入一些配置:
your navigation handle implement
试试看,在你的应用中,是不是已经按照你的 Navigation 在走了呢?
在 http://www.thearcmind.com/confluence/display/SpribernateSF/Spring+JSF+contribution+Round+2+NavigationHandlerSupport%2C+PrefixSuffixNavigationHandler 这篇文档中,给了我们一个参考的实现,它提供了两种方式来实现它的导航,我把相关的代码附在本文后面,大家可以参考并很容易把它应用到你自己的应用中去了。
http://www.blogjava.net/Files/steady/navigation.rar posted on 2006-05-29 08:52 steady 阅读(1595) 评论(2) 编辑 收藏 所属分类: JSF & Myfaces <!--
FeedBack: # re: JSF 中使用自定义 Navigation 2006-06-30 16:42 开源学习 请教一个问题
Faces Servlet
*.jsf
项目中并没有以。jsf为后劲缀的面页,jsf是如何解析的呢?
比如testjsf.jsp,当我打http://localhost:8080/XXX/testjsf.jsf自动解析testjsf.jspz这个面页!
why?
jiaj
2006-6-30 回复 更多评论
# re: JSF 中使用自定义 Navigation 2008-02-02 11:39 ghost 就我看到的情况是JSF会根据WEB根目录找到相应的文件,所以这种mapping只是后缀的重写而以,我也很想知道在JSF中是否可以将页面放到/WEB-INF/目录下而被访问的方法 回复 更多评论
转载于:http://blog.itpub.net/8485249/viewspace-429928/
- 点赞
- 收藏
- 分享
- 文章举报
相关文章推荐
- 开发自定义JSF组件(3) 使用绑定变量
- jsf的初步使用(包括jsf框架的引入、用户登录、自定义表单验证、valueChangeEvent值变更事件处理做的级联下拉框)
- JSF--转换器的使用和自定义
- 开发自定义JSF组件(2) 使用Render渲染器
- How to create custom navigation menu in SharePoint with XML data source 使用XML数据源在SharePoint创建自定义导航菜单
- How to create custom navigation menu in SharePoint with XML data source 使用XML数据源在SharePoint创建自定义导航菜单
- ios navigationcontroller 使用,以及自定义动画切换特效CATransi...
- android 中自定义广播的使用broardcast
- iOS手势识别的详细使用(拖动,缩放,旋转,点击,手势依赖,自定义手势)
- Android中自定义MultipartEntity实现文件上传以及使用Volley库实现文件上传
- Android Design控件之NavigationView的学习和使用
- SQLSERVER的自定义函数,不支持使用exec sp_executesql与Exec()
- java --自定义注解的使用
- 客户端使用自定义代理类访问WCF服务
- Android 自定义Service 使用时的个人体会
- [ubuntu入门手册] - 使用alias自定义命令
- 使用struts2自定义拦截器,要引入defaultStack
- C#中使用自定义的纸张大小
- [Yii2]自定义注册功能时,使用自己的类替换user类,出现 table no found 解决方法
- BottomNavigationBar使用