我遇到了一些JSF導航和傳遞參數的問題;這是該方案:JSF導航和傳遞參數
三個頁面:藝術家,專輯,曲目
對於每一個頁面一個bean:ArtistBean,AlbumBean,TrackBean(會話範圍)
藝術家頁面包含藝術家列表,每個artistname是一個鏈接,當點擊它時,您可以導航到列出該藝術家專輯的專輯頁面。同樣,當點擊相冊時,您可以導航到該專輯的曲目列表的曲目頁面。
的鏈接如下所示:
Page artist: <h:commandLink action="#{albumBean.showAlbums(artist)}" value="#{artist.name}" />
Page album: <h:commandLink action="#{trackBean.showTracks(album)}" value="#{album.name}" />
豆子看起來如下:
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;
}
我不知道這是否是一個「OK」的方式來處理導航;爲尚未顯示bean的頁面調用輔助bean。我也有一些奇怪的行爲,主要是顯示曲目的鏈接只在點擊兩次時才起作用,而顯示相冊的鏈接只需單擊一次即可工作。
在此先感謝!
我不確定你具體問什麼。你基本上是問「這是我的代碼,是不是?」這是一個非建設性的問題,因此對於Stack Overflow而言是偏離的,並且更適合於通用論壇。至於你的雙擊問題(其*看起來像是你真正的具體問題),請閱讀http://stackoverflow.com/questions/2118656/hcommandlink-hcommandbutton-is-not-being-invoked的第7條 – BalusC
我的理由詢問它是否是「處理導航的好方法」與我的鏈接無法按預期工作的事實相關。我應該用不同的措詞來說明這一點。這仍然是一個問題,我有興趣知道將參數傳遞給另一個bean的方式是否合理,或者可能會給我帶來問題。 – nivis
經過大量的反覆試驗後,我在將表單綁定移除到我用於設置表單消息的請求作用域bean上時發揮了作用。我不知道爲什麼會導致問題。 – nivis