2010-02-05 29 views
8

Cách tốt nhất để tạo liên kết "Quay lại" là gì, để ứng dụng vẫn nhất quán sau khi điều hướng.Các phương pháp hay nhất cho liên kết điều hướng "Quay lại" trong JSF

  • onclick="history.go(-1)". Điều này có hại không?
  • Sử dụng ngăn xếp trong hạt sao lưu bật lên cho bạn trường hợp điều hướng của chế độ xem cuối cùng. Bạn có thể thực hiện việc này bằng cách đặt trường hợp điều hướng với <f:setPropertyActionListener>.
  • Không ai trong số này ... các giải pháp khác.

Mọi trợ giúp sẽ được đánh giá cao! Chia sẻ những suy nghĩ của bạn! Daniel

Trả lời

5

Tôi đang sử dụng:

  • MyFaces orchestra cho việc cung cấp trò chuyện phạm vi
  • <redirect /> cho từng quy tắc chuyển hướng

này đảm bảo rằng trên nhấn nút "back" hay history.go(-1):

  • dữ liệu đã có sẵn trong màn hình trước đó sẽ vẫn ở đó (vì cuộc hội thoại vẫn đang hoạt động)
  • hộp thoại trình duyệt "gửi lại" sẽ không mở.

P.S. "backlink" có nghĩa khác

6

Nếu bạn muốn giải quyết điều này bằng liên kết điều hướng được lập trình, bạn có thể sử dụng một ngăn xếp LinkedList. Bằng cách này, bạn có thể đặt ranh giới cho số lượng trường hợp điều hướng được lưu trữ.

Ví dụ:

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(); 
    } 
} 

Vì vậy, trong 'chờ' liên kết:

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

Và liên kết 'trở lại' sẽ là:

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

Hi. Phạm vi của Bean này là gì? Bởi vì nếu đó là SessionScoped thì sẽ rất khó để quản lý điều hướng do ngăn xếp sẽ được đẩy với các liên kết sẽ kết thúc trong điều hướng sai. – LupoZ

Các vấn đề liên quan