⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 导航规则设置.htm

📁 良葛格學習筆記,《jsf入门》简体中文版,对学习JSF有帮助
💻 HTM
字号:
<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>新建网页 1</title>
</head>

<body>

<p>导航规则设置</p>
<div id="PageContent">
	<table cellSpacing="0" cellPadding="0" width="100%" border="0" id="table3">
		<tr>
			<td class="pagebody" vAlign="top">
			<table style="CLEAR: both" cellSpacing="0" cellPadding="0" width="100%" border="0" id="table4">
				<tr>
					<td class="pagecontent" vAlign="top" width="100%">
					<div class="wiki-content">
						在JSF中是根据faces-config.xml中&lt;navigation-rule&gt;设定,以决定在符合的条件成立时,该连结至哪一个页面,一个基本的设定如下:<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;/pages/index.jsp&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
            &lt;from-outcome&gt;success&lt;/from-outcome&gt;
            &lt;to-view-id&gt;/pages/welcome.jsp&lt;/to-view-id&gt;
        &lt;/navigation-<span class="code-keyword">case</span>&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
            &lt;from-outcome&gt;failure&lt;/from-outcome&gt;
            &lt;to-view-id&gt;/pages/index.jsp&lt;/to-view-id&gt;
        &lt;/navigation-<span class="code-keyword">case</span>&gt;
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
						<p>  对于JSF,每一个视图(View)都有一个独特的识别(identifier),称之为View ID,在JSF中的View
						ID是从Web应用程序的环境相对路径开始计算,设定时都是以/作为开头,如果您请求时的路径是/pages/index.faces,则JSF会将扩展名改为/pages/index.jsp,以此作为view-id。</p>
						<p>
						  在&lt;navigation-rule&gt;中的&lt;from-view-id&gt;是个选择性的定义,它规定了来源页面的条件,&lt;navigation-case&gt;中定义各种导览条件,&lt;from-outcome&gt;定义当窗体结果符合的条件时,各自改导向哪一个目的页面,目的页面是在&lt;to-view-id&gt;中定义。</p>
						<p>
						  您还可以在&lt;navigation-case&gt;中加入&lt;from-action&gt;,进一步规范窗体结果必须根据哪一个动作方法(action
						method),当中是使用 JSF Expression Language 来设定,例如:</p>
						<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;/pages/index.jsp&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
            &lt;from-action&gt;#{user.verify}&lt;/from-action&gt;
            &lt;from-outcome&gt;success&lt;/from-outcome&gt;
            &lt;to-view-id&gt;/pages/welcome.jsp&lt;/to-view-id&gt;
        &lt;/navigation-<span class="code-keyword">case</span>&gt;
        ....
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
						<p>
						  在导航时,预设都是使用forward的方式,您可以在&lt;navigation-case&gt;中加入一个&lt;redirect/&gt;,让JSF发出让浏览器重新导向(redirect)的header,让浏览器主动要求新网页,例如:</p>
						<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;/pages/index.jsp&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
            &lt;from-outcome&gt;success&lt;/from-outcome&gt;
            &lt;to-view-id&gt;/pages/welcome.jsp&lt;/to-view-id&gt;
            &lt;redirect/&gt;
        &lt;/navigation-<span class="code-keyword">case</span>&gt;
        ....
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
						<p>
						您的来源网页可能是某个特定模块,例如在/admin/下的页面,您可以在&lt;from-view-id&gt;中使用wildcards,也就是使用
						* 字符,例如:</p>
						<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;/admin/*&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
            &lt;from-action&gt;#{user.verify}&lt;/from-action&gt;
            &lt;from-outcome&gt;success&lt;/from-outcome&gt;
            &lt;to-view-id&gt;/pages/welcome.jsp&lt;/to-view-id&gt;
        &lt;/navigation-<span class="code-keyword">case</span>&gt;
        ....
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
						<p>
						在上面的设定中,只要来源网页是从/admin来的,都可以开始测试接下来的&lt;navigation-case&gt;。</p>
						<p>  &lt;from-view-id&gt;如果没有设定,表示来源网页不作限制,您也可以使用 *
						显式的在定义档中表明,例如:</p>
						<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;/*&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
        ....
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
						<p>或者是这样:</p>
						<div class="code" style="BORDER-TOP-STYLE: solid; BORDER-RIGHT-STYLE: solid; BORDER-LEFT-STYLE: solid; BORDER-BOTTOM-STYLE: solid">
							<div class="codeContent">
								<pre class="code-java">....
    &lt;navigation-rule&gt;
        &lt;from-view-id&gt;*&lt;/from-view-id&gt;
        &lt;navigation-<span class="code-keyword">case</span>&gt;
        ....
    &lt;/navigation-rule&gt;
 ....</pre>
							</div>
						</div>
					</div>
					</td>
				</tr>
			</table>
			</td>
		</tr>
	</table>
</div>

</body>

</html>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -