【问题标题】:Navigation rule with faces-redirect=true not firingfaces-redirect=true 的导航规则未触发
【发布时间】:2015-07-13 09:32:06
【问题描述】:

我正在开发一个用于练习的小型网络工具,并且导航规则已引起我的注意。因此,我查看了一些网络教程并自己尝试了它,但它对我不起作用。它不会重定向到所需的页面。

faces-config.xml(仅重要的部分)

    <navigation-rule>  
    <from-view-id>/kursleiter.xhtml</from-view-id>  
        <navigation-case>   
            <from-action>#{verifyCredentials.save}</from-action>
            <from-outcome>ok</from-outcome>   
            <to-view-id>/teilnehmer.xhtml?faces-redirect=true</to-view-id>  
        </navigation-case>  
</navigation-rule>

返回&lt;from-outcome&gt;值的类

public class verifyCredentials() {
    public String save(Klasse klasse, Module modul) {
    //do some other stuff
    return "ok";
    }
}

当这个commandLink被按下时,重定向应该发生

<p:commandLink actionListener="#{verifyCredentials.save(klasse, modul)}">#{modul.modulnummer} </p:commandLink>

现在,这给我带来了几个问题:

  1. 我需要在&lt;from-view-id&gt; 中添加/faces/ 吗?
  2. 难道我不能简单地将链接返回到我班级中所需的页面吗?
  3. 我是否犯了任何逻辑错误,我太盲目了?

提前谢谢你 - Reteras

【问题讨论】:

    标签: jsf navigation


    【解决方案1】:

    有两个错误。

    首先,您在这里混合了隐式导航和显式导航。

    <to-view-id>/teilnehmer.xhtml?faces-redirect=true</to-view-id>
    

    faces-redirect=true 查询字符串参数仅用于隐式导航,如下所示:

    public String save(Klasse klasse, Module modul) {
        // ...
        return "/teilnehmer.xhtml?faces-redirect=true";
    }
    

    请注意,这不需要任何 XML 配置!隐式导航特性是自 JSF 2.0 以来的新特性。也许您在学习 JSF 2.x 时正在阅读/关注 JSF 1.x 资源而不是 JSF 2.x 资源。注意学习资源中提到的日期和版本。

    如果您确实需要通过 XML 中的显式导航来配置此重定向,请改用 &lt;redirect&gt;

    <navigation-case>
        <from-action>#{verifyCredentials.save}</from-action>
        <from-outcome>ok</from-outcome>
        <to-view-id>/teilnehmer.xhtml</to-view-id>
        <redirect />
    </navigation-case>  
    

    其次,您将actionListeneraction 混合在一起。

    <p:commandLink actionListener="#{verifyCredentials.save(klasse, modul)}">
    

    actionListener 不支持返回导航结果。请改用action

    <p:commandLink action="#{verifyCredentials.save(klasse, modul)}">
    

    另见:

    【讨论】:

    • 谢谢你,但遗憾的是这并没有做到。我忘了提到我正在使用 2 种保存方法。一个有参数,一个没有。我是否需要在导航案例中添加这些参数以指向此特定方法?
    猜你喜欢
    • 1970-01-01
    • 2014-04-26
    • 2011-02-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-07-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多