您好,我正在使用 JSF 2.0 构建网站。
我正在尝试设置一个commandButton,以便在我按下它之后它会使用一个方法执行一些操作,然后根据该方法返回的内容导航到一个页面。
到目前为止,我一直只使用 JSF 2.0 动作导航,但从我读到的内容来看,不可能有两个动作,因此您必须使用 faces-config.xml 文件。
我已经尝试创建一个并制定导航规则,但我无法让它工作。认为在我的 web.xml 中声明它可能是一个问题。我试图保留原始参数值,但代码无法编译,因此被注释掉:
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd">
<context-param>
<!--
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
-->
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml</param-value>
</context-param>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
<session-config>
<session-timeout>
30
</session-timeout>
</session-config>
<welcome-file-list>
<welcome-file>faces/index.xhtml</welcome-file>
</welcome-file-list>
</web-app>
<param-name>javax.faces.PROJECT_STAGE</param-name>
<param-value>Development</param-value>
我的 faces-config 文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<faces-config
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-facesconfig_2_0.xsd"
version="2.0">
<navigation-rule>
<from-view-id>/tabletsHome.xhtml</from-view-id>
<navigation-case>
<from-outcome>product1</from-outcome>
<to-view-id>/inputForm.xhtml</to-view-id>
</navigation-case>
<navigation-case>
<from-outcome>product2</from-outcome>
<to-view-id>/inputForm.xhtml</to-view-id>
</navigation-case>
此外,在导航将您带到下一页后,还有一种方法可以根据用户单击的内容将信息传递到此页面。例如产品编号?
提前感谢您提供的任何帮助。