文档章节

JSF---->导航规则设置

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 511
阅读 13
收藏 0

行业解决方案、产品招募中!想赚钱就来传!>>>

一、导航规则简介

在JSF中是根据faces-config.xml中<navigation-rule>设定,以决定在符合的条件成立时,该连结至哪一个页面。一个基本的设定如下:

<navigation-rule>

  <from-view-id>/pages/index.jsp</from-view-id>

  <navigation-case>
   <from-action>#{user.verify}</from-action>
   <from-outcome>success</from-outcome>
   <to-view-id>/pages/welcome.jsp</to-view-id>
  </navigation-case>

  <navigation-case>
   <from-outcome>failure</from-outcome>
   <to-view-id>/pages/index.jsp</to-view-id>
  </navigation-case>

 </navigation-rule>

对于JSF,每一个视图(View)都有一个独特的识别(identifier),View IDJSF中的View ID是从Web应用程序的环境相对路径开始计算,设定时都是以/作为开头,如果您请求时的路径是/pages/index.faces,则JSF会将扩展名改为/pages/index.jsp,以此作为view-id。

<from-view-id>是个选择性的定义,它规定了来源页面的条件,

<navigation-case>中定义各种导览条件,

<fromoutcome>定义当窗体结果符合的条件时,各自改导向哪一个目的页面,

<to-view-id>中定义目的页面

<from-action>,进一步规范窗体结果必须根据哪一个动作方法(action method),当中是使用 JSF Expression Language 来设定,

<navigation-case>
   <from-action>#{user.verify}</from-action>
   <from-outcome>success</from-outcome>
   <to-view-id>/pages/welcome.jsp</to-view-id>
  </navigation-case>

 二、<redirect/>

在导航时,预设都是使用forward的方式,您可以在<navigation-case>中加入一个<redirect/>,让JSF发出让浏览器重新导向(redirect)的header,让浏览器主动要求新网页,例如:

....
    <navigation-rule>
        <from-view-id>/pages/index.jsp</from-view-id>
        <navigation-case>
            <from-outcome>success</from-outcome>
            <to-view-id>/pages/welcome.jsp</to-view-id>
            <redirect/>
        </navigation-case>
        ....
    </navigation-rule>
....

forward 和redirect的区别

使用forward的时候浏览器不知道它所请求的具体资源来源,所以地址栏不会变;使用redirect,服务端根据逻辑,发送一个状态码,告诉浏览器重新去请求那个地址.所以地址栏显示的是新的URL。forward,转发页面和转发到的页面可以共享request里面的数据.redirect,不能共享数据. 

 三、通配符 

您的来源网页可能是某个特定模块,例如在/admin/下的页面,您可以在<from-view-id>中使用通配符wildcards,也就是使用 * 字符,

<from-view-id>/admin/*</from-view-id>

  <from-view-id>*</from-view-id>

  <from-view-id>/*</from-view-id>


 


 

 

小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
私信 提问
加载中
请先登录后再评论。
响应式框架--Groundwork

GroundworkCSS 是一个基于 Sass 预处理器的开源项目 ,主要用于快速构建响应式 Web 应用程序。拥有一个灵活的、可嵌套的网格系统,可以创建适应多种浏览设备的布局。 Groundwork 还提供多种 ...

匿名
2013/02/25
2.8W
4
Go 的 Web 框架--Golanger

Golanger 是一个轻量级的 Web 应用框架,使用 Go 语言编写。 Golanger框架主要实现了MVC模式(三层架构模式)(Model-View-Controller), 它是软件工程中的一种软件架构模式,把软件系统分为三个...

余风11
2012/11/23
9.1K
1
样式化 iOS 应用--NUI

NUI 可以让你通过一个样式表对 iOS 应用进行外观定制,类似 CSS。你能创建在多个应用中重用的样式,而且使用规则类似 CSS,例如设置 ButtonBorderColor 为 #CCCCCC,或者使用变量 @primaryFo...

匿名
2012/12/04
8.7K
1
At.js

At.js 是一个Twitter / Weibo样式的@自动完成插件。Demo演示 功能特性: 可以监听任何字符,不仅仅只是’@‘,可以设置监听不同的字符和使用不同的数据。 支持同时使用静态数据和动态数据(通...

匿名
2012/12/20
5.3K
2
简单CMS

主要修改: 1)增加文章模块,文章列表显示在首页和单品页中; 2)增加店铺模块,店铺显示在首页和瀑布流页中; 3)增加网站地图模块; 4)增加sitemap模块; 5)增加第三方淘宝登录功能; ...

简单CMS
2012/12/25
4.2K
0

没有更多内容

加载失败,请刷新页面

加载更多

AI复原上海民国名媛影像!1929年的小姐姐,时装精致不输现在

萧箫 发自 凹非寺 量子位 报道 | 公众号 QbitAI 中国最早的时装秀,是什么样的? 自修复100年前的北京影像后,微博博主@大谷Spitzer这次又用AI工具,复原了民国时期的这场「花生骚」(Fashi...

视学算法
今天
22
0
【脑电硬件】教育相关的商业可穿戴脑电设备概览

脑电是一门古老的脑成像技术,但迄今为止也依然是最具生命力的主流脑成像技术之一。这主要得益于相比其他脑成像技术,脑电设备具有便携性好,使用成本低,无创,高时间分辨率,和丰富的频率信...

好未来技术
20分钟前
27
0
米菲云仓系统开发(米菲系统)

本章阐述持续集成系统的发展历程、持续集成系统的原理,以及持续集成系统的实现过程,目的是让大家全面了解持续集成系统,更加深入的学习持续集成系统的原理,为后续章节的学习做好准备。我会...

薇fzb246724
28分钟前
55
0
传统租车服务企业,拥抱Docker,K8s,微服务之路!

走进台湾双北市的民营停车场,现在有机会看到贴有Smart2go字样的车辆停在停车场,供租用,而无论预约、取车、还车到付款,使用一站式App都能完成。这是格上汽车租赁(简称格上)从今年4月开始...

Kubernetes
今天
23
0
2020年7月Github上最热门的开源项目

7月份GitHub上最热门的开源项目排行已经出炉啦,一起来看看上榜详情吧 1 tsunami-security-scanner https://github.com/google/tsunami-security-scannerStar 5830 tsunami-security-scanne...

不卖萌的邓肯
今天
14
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部