JSF导航文件如何设置实例解析Word格式文档下载.docx
- 文档编号:20444046
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:11
- 大小:17.84KB
JSF导航文件如何设置实例解析Word格式文档下载.docx
《JSF导航文件如何设置实例解析Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《JSF导航文件如何设置实例解析Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
Code:
<
context-param>
param-name>
javax.faces.CONFIG_FILES
/param-name>
param-value>
/WEB-INF/faces-config.xml,
/WEB-INF/faces-beans.xml
/param-value>
/context-param>
一个简单的例子
一个导航规则的构成其实很简单,让我们来看第一个例子:
navigation-rule>
from-view-id>
/pages/inputname.jsp
/from-view-id>
navigation-case>
from-outcome>
sayHello<
/from-outcome>
to-view-id>
/pages/greeting.jsp
/to-view-id>
/navigation-case>
sayGoodbye<
/pages/goodbye.jsp
/navigation-rule>
这段代码规定了名为/pages/inputname.jspview的两个输出(outcomes),sayHello和sayGoodbye,它们分别同特定的页面相关联。
设置一个默认的输出事件(OutcomeCase)
基本结构很简单,但是可以在这个基础在进行很多变化。
请看下一段代码:
<
该段代码同上面的代码非常类似,不同的是在第二个navigation-case中缺少了from-outcome元素。
这意味着所有除sayHello之外的outcome都将进入/pages/goodbye.jsp页面。
利用模式
JSF的navigation模型允许我们利用模式(patterns)。
这些模式有一个以星号“*”结尾的字符串组成。
参见下例:
<
/pages/*<
menu<
/menu/main_main.jsp<
info<
/menu/info.html<
这段导航规则适用于类似/pages/exit.jsp之类的任何以/pages/为起始URL的页面。
注意星号一定要放在最后。
例如一个类似/pages/*.jsp的模式是无效的。
ResolvingMoreThanOneMatchingRule
现在我们来细察一下JSF导航模型中该如何处理多个规则。
具体见下面例子:
/menu/generalHelp.html<
/pages/login.jsp<
/menu/loginHelp.html<
该例中,第二个导航规则,而不是前一个,将对/pages/login.jsp生效,尽管该页面也匹配第一个规则中的模式/pages/*。
这说明对于一个特定的from-outcome,匹配更为具体的规则将生效。
"
Global"
Outcomes
假设现在我们需要一个globalHelp输出(outcome)可以使得从任何页面转到帮助页面/help/index.html。
要实现该效果,可以利用下面两个声明中的任何一个:
*<
globalhelp<
/menu/generalHelp.html
第一段代码在标签from-view-id中使用了星号,而第二断代码甚至根本没有用from-view-id标签。
两者都可以达到相同的效果。
不过需注意的是,一个空的from-view-id元素是没有任何效果的,例如:
globalhelp
/pages/goaway.html
规则的冲突
这是个有趣的问题。
如果有两个相同的from-view-id,其包含from-outcome也相同,只是指向不同的页面。
来看看下一个例子:
这种情况下,最后一个规则将生效。
同时还需注意本文前面提到可以将JSF配置信息置于多个文件中的情况。
从而产生冲突的规则可能位于不同的配置文件,此时应根据web.xml文件中的JSF配置文件列表,在含冲突规则的配置文件中最后加载的文件中的相关规则将会生效。
将一个导航规则分开为几部分,这是同一种效果的不同实现方式。
试比较下面两段代码:
sayGoodbye
sayHello
...
运行时两者效果相同。
不过,第二段代码显示规则声明可以任意分开后放在配置文件的不同位置,甚至是不同的配置文件中。
你可以根据自己的需要选择不同的方式。
在action中使用导航规则。
现在,该看看如何将前面所学内容应用于程序中了。
下面便是一个JSP页面可能包含的代码:
h:
commandButton
id="
submit"
action="
sayHello"
value="
Submit"
/>
action属性值将被用作一个输出(outcome)。
这里是另一种方式:
commandButtonid="
#{GetNameBean.helloAction}"
这意味着将调用GetNameBean的helloAction方法,该方法运行的结果将成为一个outcome。
注意helloAction必须是一个返回值为字符串的public方法。
上面两种不同action属性值的写法区别在考虑到配置文件中的一个标签时将比较重要,这个标签便是from-action标签,我们前面还未提及。
请参考下面代码:
/pages/anotherhello.jsp
from-action>
#{GetNameBean.helloAction}
/from-action>
/pages/hello.jsp
在这段代码中,两个navigationcases均含有相同的from-view-id以及from-outcome元素,不过第二个navigationcase包含一个from-action元素。
如果sayHello这个outcome是通过GetNameBean.helloAction产生的话,第二个navigationcase将生效,不过其原因仅仅是除from-outcome外两者具有相同的优先级。
Review
为了检查您对本文的理解情况。
请看下面例子,在/pages/inputname.jsp这页面中对commandButton有一下声明:
而JSF配置文件则包含了一下内容:
/a.jsp<
/b.jsp<
如果上面页面中的提交按钮被按下,到底跳到/a.jsp还是/b.jsp的哪个页面,如果在GetNameBean.helloAction返回值为sayHello的情况下又如何呢?
留给大家作为思考吧!
以上内容由华夏名网搜集整理,如转载请注明原文出处,并保留这一部分内容。
“华夏名网”和是成都飞数科技有限公司的网络服务品牌,专业经营虚拟主机,域名注册,VPS,服务器租用业务。
公司创建于2002年,经过6年的高速发展,“华夏名网”已经成为我国一家知名的互联网服务提供商,被国外权威机构webhosting.info评价为十大IDC服务商之一。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- JSF 导航 文件 如何 设置 实例 解析