我遇到了一些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