JSF配置文件faces-config.xml参数详解

  faces-config.xml参数  
xml version ="1.0" ?>
  

< faces-config >
     < 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 >
         navigation-case >
         < navigation-case >
             < from-outcome >failure from-outcome >
             < to-view-id >/pages/index.jsp to-view-id >
         navigation-case >
     navigation-rule >
        
     < managed-bean >
         < managed-bean-name >user managed-bean-name >
         < managed-bean-class >
            onlyfun.caterpillar.UserBean
         managed-bean-class >
         < managed-bean-scope >session managed-bean-scope >
     managed-bean >
faces-config >

一对是一组导航规则,在该标签里面定义表单来源和跳转的目标 . 对于JSF,每一个视图(View)都有一个独特的识别(identifier),称之为View ID,在JSF中的View ID是从Web应用程序的环境相对路径开始计算,设定时都是以/作为开头,如果您请求时的路径是/pages/index.faces,则JSF会将扩展名改为/pages/index.jsp,以此作为view-id。在中的是个选择性的定义,它规定了来源页面的条件,中定义各种导览条件,定义当窗体结果符合的条件时,各自改导向哪一个目的页面,目的页面是在中定义

还可以在中加入,进一步规范窗体结果必须根据哪一个动作方法(action method),当中是使用 JSF Expression Language 来设定,例如: 

     < 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-rule >

 在导航时,预设都是使用forward的方式,您可以在中加入一个,让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 >

 您的来源网页可能是某个特定模块,例如在/admin/下的页面,您可以在中使用wildcards,也就是使用 * 字符,例如: 

     < navigation-rule >
         < from-view-id >/admin/* 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-rule >

 ....在上面的设定中,只要来源网页是从/admin来的,都可以开始测试接下来的

如果没有设定,表示来源网页不作限制,您也可以使用 * 显式的在定义档中表明,例如:

     < navigation-rule >
         < from-view-id >/* from-view-id >
         < navigation-case >
        ....
     navigation-rule >

 或者 

< navigation-rule >
         < from-view-id >* from-view-id >
         < navigation-case >
        ....
navigation-rule >

你可能感兴趣的:(JAVA,jsf,redirect,浏览器,header,session,action)