|
应用服务器 | Java | 1640 次查看 |
|---|---|---|
|
||
The JavaServer Faces (JSF)的Navigation框架提供了一些导航规则,可以使您在设计网站应用程序时定义view(大部分是JSP页面)之间的页面导航。这些规则和 其他一些设置一起定义在JSF配置文件中。 该文件的名称一般是 faces-config.xml 。不过完全可以把这个文件名改成其他名字,甚至可以用多个配置文件来存放相关的JSF配置信息,只要在web.xml文件中进行类似下面的设置: 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> 一个简单的例子 一个导航规则的构成其实很简单,让我们来看第一个例子: Code: <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> <navigation-case> <from-outcome>sayGoodbye</from-outcome> <to-view-id> /pages/goodbye.jsp </to-view-id> </navigation-case> </navigation-rule> 这段代码规定了名为 /pages/inputname.jsp view的两个输出(outcomes), sayHello 和 sayGoodbye ,它们分别同特定的页面相关联。设置一个默认的输出事件(Outcome Case) 基本结构很简单,但是可以在这个基础在进行很多变化。请看下一段代码: Code: <navigation-rule> action属性值将被用作一个输出(outcome)。这里是另一种方式: Code: <h:commandButton id="submit" action="#{GetNameBean.helloAction}" value="Submit" /> 这意味着将调用GetNameBean的helloAction方法,该方法运行的结果将成为一个outcome。注意helloAction必须是一个返回值为字符串的public方法。 上面两种不同action属性值的写法区别在考虑到配置文件中的一个标签时将比较重要,这个标签便是 from-action 标签,我们前面还未提及。请参考下面代码: Code: <navigation-rule> <from-view-id> /pages/inputname.jsp </from-view-id> <navigation-case> <from-outcome>sayHello</from-outcome> <to-view-id> /pages/anotherhello.jsp </to-view-id> </navigation-case> <navigation-case> <from-action> #{GetNameBean.helloAction} </from-action> <from-outcome>sayHello</from-outcome> <to-view-id> /pages/hello.jsp </to-view-id> </navigation-case> </navigation-rule> 在这段代码中,两个navigation cases均含有相同的 from-view-id 以及 from-outcome 元素,不过第二个navigation case包含一个from-action元素。如果 sayHello 这个outcome是通过 GetNameBean.helloAction 产生的话,第二个navigation case将生效,不过其原因仅仅是除 from-outcome 外两者具有相同的优先级。 Review 为了检查您对本文的理解情况。请看下面例子,在 /pages/inputname.jsp 这页面中对commandButton有一下声明: Code: <h:commandButton id="submit" action="#{GetNameBean.helloAction}" value="Submit" />
|
||