【问题标题】:Navigating to another page JSF导航到另一个页面 JSF
【发布时间】:2015-08-12 17:35:25
【问题描述】:

我写了一个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 那么它会显示一个错误,或者如果我将操作写入另一个页面那么它不会将值插入到数据库中。

【问题讨论】:

  • 没有像这样的命令按钮的动作属性 action="#userData.add?faces-redirect=true"
  • 我写了 但是页面仍然没有导航现在我的 faces-config.xml 看起来像这样 /badge.xhtml-view-id>
  • 我在add方法中执行了insert sql语句,你能告诉我怎么写
  • 现在我为命令按钮添加了动作监听器,并在类中编写了一个方法,如 public String edit(){ return "badge"; }

标签: jsf jsf-2


【解决方案1】:

停止阅读 JSF 1.x 资源并删除 faces-config.xml 中所有 JSF 1.x 样式的 &lt;managed-bean&gt;&lt;navigation-rule&gt; 条目。

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 教程/书籍的链接。

另见:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-08-16
    • 1970-01-01
    • 2012-09-18
    相关资源
    最近更新 更多