Java “最佳实践”;“后退”;JSF中的导航链接
创建“反向”链接的最佳方法是什么,以便应用程序在导航后保持一致Java “最佳实践”;“后退”;JSF中的导航链接,java,jsf,navigation,Java,Jsf,Navigation,创建“反向”链接的最佳方法是什么,以便应用程序在导航后保持一致 onclick=“history.go(-1)”。这很有害吗 在支持bean中使用堆栈,弹出最后一个视图的导航案例。您可以通过使用设置导航案例来完成此操作 这些都不是。。。其他解决办法 任何帮助都将不胜感激!分享你的想法! 丹尼尔我正在使用: 用于提供对话范围 每个导航规则的 这可确保按下“后退”按钮或history.go(-1): 上一屏幕中可用的数据仍将存在(因为对话仍处于活动状态) “重新提交”浏览器对话框将不会打开
。这很有害吗onclick=“history.go(-1)”
- 在支持bean中使用堆栈,弹出最后一个视图的导航案例。您可以通过使用
设置导航案例来完成此操作 - 这些都不是。。。其他解决办法
- 用于提供对话范围
- 每个导航规则的
history.go(-1)
:
- 上一屏幕中可用的数据仍将存在(因为对话仍处于活动状态)
- “重新提交”浏览器对话框将不会打开
p.S.具有不同的含义如果您想通过编程导航链接解决此问题,可以使用
链接列表
作为堆栈。通过这种方式,您可以为存储的导航案例数设置边界
例如:
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();
}
}
公共类BackNavigationBean{
公共BackNavigationBean(){
历史记录=新的LinkedList();
}
私人链接列表历史;
公共链接列表getHistory(){
回归历史;
}
public void setLastPage(字符串navigationCase){
历史推送(navigationCase);
如果(history.size()>10){
pollLast();
}
}
公共字符串getLastPage(){
返回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}" />
Hi。这个Bean的范围是什么?因为如果它是sessionscope,那么管理导航将非常困难,因为堆栈将被链接推送,这将导致错误导航。