[英]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.