我编写了一个jsf应用程序,该应用程序将数据插入mysql数据库并在另一个页面中显示一些插入的详细信息。
我成功地将值插入数据库,但即使在编写导航规则后也无法重定向到其他页面。
我的操作代码
<div align="center"><p:commandButton label="Submit" action="#{userData.add}" align="center" ajax="false" /></div>
导航规则
<managed-bean>
<managed-bean-name>UserData</managed-bean-name>
<managed-bean-class>userData.UserData</managed-bean-class>
<managed-bean-scope>session</managed-bean-scope>
</managed-bean>
<navigation-rule>
<display-name>home.xhtml</display-name>
<from-view-id>/home.xhtml</from-view-id>
<navigation-case>
<to-view-id>/badge.xhtml</to-view-id>
</navigation-case>
</navigation-rule>
如果我将face-redirect写入true,那么它会显示错误,或者如果我将操作写入其他页面,那么它不会将值插入数据库。
最佳答案
停止阅读 JSF 1.x 资源并摆脱所有 JSF 1.x 风格 <managed-bean>
和<navigation-rule>
faces-config.xml
中的条目.
适合您的 JSF 2.x 方法 action="#{userData.add}"
如下:
@ManagedBean
@ViewScoped
public class UserData {
public String add() {
// ...
return "/badge.xhtml?faces-redirect=true";
}
}
不需要额外的 XML 困惑。也没有 Action 监听器。
JSF 2.x 教程/书籍的链接可以在 our JSF wiki page 中找到。 .
另请参阅:
关于jsf - 导航到另一个页面 JSF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30536572/