您好我正在使用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>
在导航转到下一页后,还有一种方法可以根据用户点击的内容将信息传递到此页面。例如产品编号?
提前感谢您提供任何帮助。
答案 0 :(得分:1)
我不确定web.xml
/ faces-config.xml
与此相关的方式。至于您的上下文参数问题,只需创建另一个<context-param>
。但这不会解决你的问题。至于你的导航问题,你可以只使用一个返回不同结果的动作方法。
public String submit() {
if (...) {
return "view1";
}
else {
return "view2";
}
}