文档章节

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

小强斋太
 小强斋太
发布于 2016/11/09 20:07
字数 511
阅读 6
收藏 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
0
JSF导航规则

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

科技小毛
2017/10/19
0
0
JSF 2 简介,第 1 部分: 流线化 Web 应用程序开发

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

晨曦之光
2012/03/09
0
0
怀疑论者的 JSF: JSF 应用程序的生命周期

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

晨曦之光
2012/03/09
0
0
javaee6的几个疑问

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

52java
2013/08/20
120
2

没有更多内容

加载失败,请刷新页面

加载更多

搬瓦工镜像站bwh1.net被DNS污染,国内打不开搬瓦工官网

今天下午(2018年10月17日),继搬瓦工主域名bandwagonhost.com被污染后,这个国内的镜像地址bwh1.net也被墙了。那么目前应该怎么访问搬瓦工官网呢? 消息来源:搬瓦工优惠网->搬瓦工镜像站b...

flyzy2005
今天
2
0
SpringBoot自动配置

本篇介绍下,如何通过springboot的自动配置,将公司项目内的依赖jar,不需要扫描路径,依赖jar的情况下,就能将jar内配置了@configuration注解的类,创建到IOC里面 介绍下开发环境 JDK版本1.8 spr...

贺小五
今天
3
0
命令行新建Maven多项目

参考地址 # DgroupId 可以理解为包名# DartifactId 可以理解为项目名mvn archetype:generate -DgroupId=cn.modfun -DartifactId=scaffold -DarchetypeArtifactId=maven-archetype-quickst......

阿白
今天
1
0
OSChina 周四乱弹 —— 上帝对我单身年限的惩罚越来越长了

Osc乱弹歌单(2018)请戳(这里) 【今日歌曲】 @达尔文:分享张卫健的单曲《身体健康》 《身体健康》- 张卫健 手机党少年们想听歌,请使劲儿戳(这里) 昨天是重阳节咯, 可惜小小编辑总是晚...

小小编辑
今天
12
1
django rest framework 外键序列化方法与问题总结

django rest framework 外键序列化方法与问题总结 当借口中需要出现一对多关系的时候,我们可以用rest_framwork的序列化功能来处理,代码如下. # models.pyfrom django.db import modelscl...

_Change_
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部