簡體   English   中英

JSF導航和傳遞參數

[英]JSF navigation and passing parameters

我在JSF導航和傳遞參數方面遇到一些問題; 這是場景:

三頁:藝術家,專輯,曲目

對於每個頁面,一個bean:ArtistBean,AlbumBean,TrackBean(會話范圍)

藝術家頁面包含一個藝術家列表,每個藝術家名稱都是一個鏈接,單擊該鏈接時,您導航到專輯頁面,該頁面列出了該藝術家的專輯。 同樣,單擊專輯時,您將導航到該曲目的頁面,其中包含該專輯的曲目列表。

鏈接如下所示:

Page artist: <h:commandLink action="#{albumBean.showAlbums(artist)}" value="#{artist.name}" />
Page album:  <h:commandLink action="#{trackBean.showTracks(album)}" value="#{album.name}" />

Bean如下所示:

AlbumBean: public String showAlbums(Artist artist){
              [generate list of albums, fetched by page "albums" using getAlbumList()]
              return "Albums";
           }

           public List<Album> getAlbumList(){
              return albumList;
           }

TrackBean: public String showTracks(Album album){
              [generate list of tracks, fetched by page "tracks" using getTrackList()]
              return "Tracks";
           }

           public List<Track> getTrackList(){
              return trackList;
           }

我不確定這是否是導航的“確定”方式; 為尚未顯示的頁面調用支持bean。 我也有一些奇怪的行為,主要是顯示曲目的鏈接僅在單擊兩次后才起作用,而顯示專輯的鏈接在單擊一次時始終起作用。

提前致謝!

我不確定您在做什么是錯誤的。 但是我發現它很復雜。 在我看來,更簡單的解決方案如下:

您有3個bean和3頁。 顯然,在藝術家頁面中調用了藝術家bean等等。

通過鏈接完成頁面之間的導航,然后添加參數。 在Album bean上,讀取傳遞的參數並根據該參數填寫相冊列表(您可以使用name或id作為鍵值)

曲目信息也是如此。

這樣,您就不需要在會話范圍內使用bean。 更好地使用視圖范圍。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM