CDI对话和Primefaces向导组件
|
我刚刚意识到,我使用@RequestScoped向导支持bean时,向导组件忘记了过去的步骤。使用@SessionScoped可以工作,但是很难看。
因此,我尝试使用@ConversationScoped使其工作,但必须实现一些奇怪的效果。 (也许出于J2EE经验)
鉴于这种向导支持bean:
@Named
@RequestScoped
public class EvaluationWizard implements Serializable {
...
@Inject
private Conversation conversation;
@Inject
private Song selectedSong;
...
public void setSelectedSong(final Song song) {
selectedSong = song;
}
public Song getSelectedSong() {
return selectedSong;
}
public void onDialogOpen(final ActionEvent actionEvent) {
conversation.begin();
}
public void onDialogClose(final CloseEvent closeEvent) {
conversation.end();
}
...
}
我的Song对象看起来像这样:
@Named
@ConversationScoped
public class Song extends SelectItem implements Serializable {
private String title;
public void setTitle(final String title) {
this.title = title;
}
@Override
public String toString() {
return title;
}
}
该向导包含几个步骤以进行设置。 selectedSong属性是列表的一项,代表当前选择的歌曲。
此选择保存在\“ EvaluationWizard \”后备bean中,我的调试确认是这种情况-但这仅是一个向导步骤的情况。
对此的任何帮助将是非常感谢的。
问候,马塞尔。
没有找到相关结果
已邀请:
2 个回复
担每棱绰
或
。 我个人喜欢使用ViewScoped,因为将在您导航到该页面时创建该bean,而在离开该页面时将使其消失。这为您提供了持久化bean的好处,而不会使会话混乱。
厦惫