java - JSF 中 "Back"导航链接的最佳实践

标签 java jsf navigation

制作“后退”链接的最佳方式是什么,以便应用程序在导航后保持一致。

  • onclick="history.go(-1)" .这是非常有害的吗?
  • 在支持 bean 中使用堆栈,弹出最后一个 View 的导航案例。您可以通过使用 <f:setPropertyActionListener> 设置导航案例来完成此操作.
  • 这些都不是……其他解决方案。

任何帮助将不胜感激!分享你的意见! 丹尼尔

最佳答案

如果您想通过编程导航链接来解决这个问题,您可以使用 LinkedList 作为堆栈。通过这种方式,您可以为存储的导航案例数量设置界限。

例子:

public class BackNavigationBean {

    public BackNavigationBean() {
        history = new LinkedList<String>();
    }
    private LinkedList<String> history;

    public LinkedList getHistory() {
        return history;
    }

    public void setLastPage(String navigationCase) {
        history.push(navigationCase);
        if (history.size() > 10) {
            history.pollLast();
        }
    }

    public String getLastPage() {
        return history.pop();
    }
}

因此在“转发”链接中:

<h:commandLink value="Forward" action="#{myBean.someMethod}">
    <f:setPropertyActionListener target="#{backNavigationBean.lastPage}"
                                 value="back_to_index" />
</h:commandLink>

“后退”链接将是:

<h:commandLink value="Back"
               action="#{backNavigationBean.getLastPage}" />

关于java - JSF 中 "Back"导航链接的最佳实践,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2206953/

相关文章:

java - 创建自定义 JSF 1.2 组件

swift - 无法实例化 View Controller Swift

javascript - TabNavigator、DrawerNavigator、StackNavigator 之间有什么不同?

Android Studio-无法在模拟器中导航

java - 在 Java 中使用 Kotlin 库

java - Guava Multimaps.filterKeys 与 NavigableMap.subMap() 相比性能较差

java - 重构两个相似但值略有不同的 if 循环 (Java)

用于创建图像文件的 Java ProcessBuilder 输出

java - 绑定(bind) <h :inputText> value to a bean property while showing a different text into the field

eclipse - 将 PrimeFaces 库作为 "external JAR"添加到 Eclipse 项目时,PrimeFaces 组件未显示