JSF中使用自定义Navigation

开发 后端
本文介绍JSF的Navigation的自定义,以及介绍JSF的Navigation 中,我们一个 page 都有一个 from-view-id 。

过去的一段时间,一直有人拿 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 中对JSF的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 部分加入一些配置:


试试看,在你的应用中,是不是已经按照你的 Navigation 在走了呢.我们一个参考的实现,我把相关的代码附在本文后面,大家可以参考并很容易把它应用到你自己的应用中去了。

【编辑推荐】

  1. JSF2中Ajax事件和错误
  2. 简述JSF程序配置
  3. Java开发三剑客JSF2.0、EJB3.1、JPA2.0现状及发展
  4. 在JSF/JSP中集成FCKEditor
  5. JSF+Seam框架学习心得
责任编辑:佚名 来源: 中国IT实验室
相关推荐

2009-06-24 15:13:36

自定义JSF组件

2009-06-25 14:53:35

自定义UI组件JSF框架

2022-11-23 15:26:25

Ubuntu程序坞

2021-07-16 07:00:11

PyTorch DatasetsDataLoader

2009-06-22 15:07:45

原则和技巧JSF自定义复合组件

2009-06-24 17:34:58

使用JSF的经验

2015-02-12 15:33:43

微信SDK

2009-06-24 17:21:23

JSF框架设计模式

2009-11-10 17:12:22

VB.NET自定义类型

2009-06-22 16:24:33

JSF框架中使用的设计

2019-12-25 11:47:27

LinuxFVWM

2010-10-25 16:05:07

oracle自定义函数

2022-01-14 09:17:13

PythonAPISIX插件

2021-05-28 08:58:41

Golang网卡metrics

2015-02-12 15:38:26

微信SDK

2022-09-13 15:44:52

VSLook插件

2021-10-28 08:39:22

Node Export自定义 监控

2015-06-10 10:54:24

自定义路PHP

2009-02-10 12:55:39

自定义控件AJAX.NET

2021-12-24 15:46:23

鸿蒙HarmonyOS应用
点赞
收藏

51CTO技术栈公众号