文档章节

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

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 511
阅读 4
收藏 0
点赞 0
评论 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>


 


 

 

本文转载自:http://www.cnblogs.com/xqzt/archive/2012/05/17/5637340.html

共有 人打赏支持
小强斋太
粉丝 0
博文 181
码字总数 0
作品 0
广州
1.5 Hello, world! 解剖 -JSF实战 -hxzon -jsf学习笔记

1.5 Hello, world! 解剖 -JSF实战 -hxzon -jsf学习笔记 既然已经对JSF能够解决什么问题有了初步理解,我们来开始开发一个简单的应用。本节假定你已熟悉Java Web应用和JSP(关于这些技术的信息...

hxzon ⋅ 2009/03/05 ⋅ 0

JSF导航规则

导航规则设置 .... .... .... .... .... ....

科技小毛 ⋅ 2017/10/19 ⋅ 0

JSF生命周期总结

JSF实现使用一个控制器servlet 来处理请求,然后执行 JSF 生命周期.如图显示了JSF 生命周期中的事件处理。 上图是正常的JSF组件的生命周期.一共12个. 记住,所有JSF事件都在服务器上执行,当在J...

Zhao-Qian ⋅ 2012/08/10 ⋅ 0

怀疑论者的 JSF: JSF 应用程序的生命周期

级别: 中级 Rick Hightower (rhightower@arc-mind.com), CTO, ArcMind 2005 年 3 月 01 日 本系列怀疑论者的 JSF 一共包含 4 篇文章,本文是其中的第 2 篇。在本文中,Rick Hightower 对 Ja...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

JSF 2 简介,第 1 部分: 流线化 Web 应用程序开发

在朋友的强烈推荐下,开始看JSF2.0。看了第一部分。感觉不是太大。接下来继续学习,应该会有不错的体验。。。 使用 JSF 2 简化导航、免除 XML 配置并轻松访问资源 public class Place { ......

晨曦之光 ⋅ 2012/03/09 ⋅ 0

javaee6的几个疑问

1.javaee6提供了restful支持,这与jsf里面的配置感觉重复了(导航规则) 2.几个注解一直分不清,@Resource ,@Inject,@EJB 感觉貌似可以混用 3.有谁在实际项目中用到了所有的javaee技术?...

52java ⋅ 2013/08/20 ⋅ 2

JSF 2.0 新特性

JavaServer Faces (JSF) 是一种用于构建 Java Web 应用程序的服务端用户界面组件框架。 JSF 提供了具有良好定义的编程模型和 tag 库。从很大程度上简化了在服务端构建和维护 web 应用程序。你...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

Seam 对话以及工作区管理

现在该更详细地了解一下Seam的对话模型了。 从历史上看,Seam的“对话Conversation”概念是由三个不同的概念合并而成的。 工作区(workspace) 的概念,是我2002年在给英国政府做项目中遇到的...

晨曦之光 ⋅ 2012/03/09 ⋅ 0

采用groovy开发基于JBoss的JSF应用

开发环境 JBoss AS 4.2.3GA + JBossTools 2.1.2 + GroovyEclipsePlugin 1. 项目准备 1.1. 新建 一个JSF项目 在Eclipse中选择“File-New->JSF Project”,在出现的窗口中输入: Project Name......

绿悠悠 ⋅ 2010/06/08 ⋅ 0

JSF的URL扩展--PrettyFaces

PrettyFaces是一个JSF1.2和JSF2.0的扩展,用来创建便于书签收藏、漂亮的网址。 PrettyFaces优雅的解决了这个问题,包括诸如功能:网页装载行动,无缝的跟faces的导航整合,动态视图的ID分配和...

匿名 ⋅ 2009/09/08 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

前台对中文编码,后台解码

前台:encodeURI(sbzt) 后台:String param = URLDecoder.decode(sbzt,"UTF-8");

west_coast ⋅ 38分钟前 ⋅ 0

VS2015配置并运行汇编(一步一步照图做)【vs2017的链接在最后】

前言 我是上学期学的汇编,因为有vs又不想用课上教的麻烦的dosbox以及masm32,但是一直没找到高亮插件和能调试的(难在运行不了而找不到答案上,出现的错误在最后放出,还请先达们不吝指点)...

simpower ⋅ 48分钟前 ⋅ 0

一起读书《深入浅出nodejs》-node模块机制

node 模块机制 前言 说到node,就不免得提到JavaScript。JavaScript自诞生以来,经历了工具类库、组件库、前端框架、前端应用的变迁。通过无数开发人员的努力,JavaScript不断被类聚和抽象,...

小草先森 ⋅ 51分钟前 ⋅ 0

Java桌球小游戏

其实算不上一个游戏,就是两张图片,不停的重画,改变ball图片的位置。一个左右直线碰撞的,一个有角度碰撞的。 左右直线碰撞 package com.bjsxt.test;import javax.swing.*;import j...

森林之下 ⋅ 58分钟前 ⋅ 0

你真的明白RPC 吗?一起来探究 RPC 的实质

你真的明白RPC 吗?一起来探究 RPC 的实质 不论你是科班出身还是半路转行,这么优秀的你一定上过小学语文,那么对扩句和缩句你一定不陌生。缩句就是去除各种修饰提炼出一句话的核心,而不失基...

AI9o後 ⋅ 今天 ⋅ 0

z-index设置失效?

今天碰到了一个问题,就是在给li设置提示框的时候,有用到遮罩效果,本来想把对应的出现在最顶层,可是不管将li设置的z-index值设为多大,li都没有出现在遮罩层之上。 我在网上查了z-index设...

IrisHunag ⋅ 今天 ⋅ 0

CyclicBarrier、CountDownLatch以及Semaphore使用及其原理分析

CyclicBarrier、CountDownLatch以及Semaphore是Java并发包中几个常用的并发组件,这几个组件特点是功能相识很容易混淆。首先我们分别介绍这几个组件的功能然后再通过实例分析和源码分析其中设...

申文波 ⋅ 今天 ⋅ 0

Java对象的序列化与反序列化

Java对象的序列化与反序列化

Cobbage ⋅ 今天 ⋅ 0

Sqoop

1.Sqoop: 《=》 SQL to Hadoop 背景 1)场景:数据在RDBMS中,我们如何使用Hive或者Hadoop来进行数据分析呢? 1) RDBMS ==> Hadoop(广义) 2) Hadoop ==> RDBMS 2)原来可以通过MapReduce I...

GordonNemo ⋅ 今天 ⋅ 0

全量构建和增量构建的区别

1.全量构建每次更新时都需要更新整个数据集,增量构建只对需要更新的时间范围进行更新,所以计算量会较小。 2.全量构建查询时不需要合并不同Segment,增量构建查询时需要合并不同Segment的结...

无精疯 ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部