导航到另一个页面 JSF

Navigating to another page JSF

我写了一个 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 资源并删除 faces-config.xml.[=19 中的所有 JSF 1.x 风格的 <managed-bean><navigation-rule> 条目=]

适合您的 action="#{userData.add}" 的正确 JSF 2.x 方法如下:

@ManagedBean
@ViewScoped
public class UserData {

    public String add() {
        // ...

        return "/badge.xhtml?faces-redirect=true";
    }

}

不需要额外的 XML 混乱。也没有动作监听器。

可以在 our JSF wiki page.

中找到指向 JSF 2.x tutorials/books 的链接

另请参阅:

  • How to choose the right bean scope?
  • How to navigate in JSF? How to make URL reflect current page (and not previous one)
  • Differences between action and actionListener