在我的示例应用程序中使用JSF2.0 + richfaces3.3.3 + tomcat6.0.29。
我没有重定向的导航案例在IE中无效。 但其他浏览器也有效。
当我添加重定向标记,然后在所有浏览器中使用页面导航。
JSF1.2,我不使用重定向,页面导航在所有浏览器中都能正常工作。
为什么JSF2.0需要重定向代码?
我的jsp文件位置 webpages / design / first.jsp 和 webpages / design / second.jsp
faces-config.xml中
....
....
<managed-bean>
<managed-bean-name>First</managed-bean-name>
<managed-bean-class>sample.First</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<from-view-id>/design/first.jsp</from-view-id>
<navigation-case>
<from-outcome>go_secondpage</from-outcome>
<to-view-id>/design/second.jsp</to-view-id>
</navigation-case>
</navigation-rule>
....
网页/设计/ first.jsp
<f:view>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>First Page</title>
</head>
<body>
<h:form id="sampleForm">
<h:panelGrid cellpadding="10" cellspacing="10">
<h:outputText value="You are in first page"/>
<a4j:commandButton value="GO-SecondPage" action="#{First.goSecondPage}"/>
</h:panelGrid>
</h:form>
</body>
</html>
First.java
package sample;
public class First
{
public String goSecondPage()
{
String message = "go_secondpage";
return message;
}
}
网页/设计/ second.jsp
<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Seocnd Page</title>
</head>
<body>
<h1>Welcome second page</h1>
</body>
</html>
帮帮我。 提前谢谢......
答案 0 :(得分:0)
您使用的是richfaces版本,对JSF2检查link的支持有限。删除richfaces标签,使用纯JSF命令按钮标签并检查,如果使用richfaces与JSF2使用版本4.x.它不是JSF问题。另请参阅根据JSF版本使用正确的faces-config.xml。