JavaScript使用此网址pl_edit.xhtml?id=1
请求页面。它使用下面的PlayerEditBean
。 load()
方法从数据库中提取玩家。它工作正常。该页面包含一个“保存”按钮,该按钮会发布到下面显示的save()
方法。
这是我第一次尝试对话。我没有多页面对话框。我只是希望对话可以为我保留playerEditBean.player
的状态。不幸的是,它不起作用。在save()
中,播放器对象是新构造的,具有空id。
我是如何使用对话的?
@Named
@ConversationScoped()
public class PlayerEditBean implements Serializable {
private static final long serialVersionUID = 1L;
@Inject
private Conversation conversation;
@Inject
PlayerService playerService=null;
private Player player=null;
@PostConstruct
public void load() {
conversation.begin();
// assume valid id is passed and we're loading a player from database
String strId=FacesContext.getCurrentInstance().getExternalContext().getRequestParameterMap().get("id");
player=playerService.getPlayer(Long.valueOf(strId));
}
public void save() {
System.out.println("Persisting player with id " + player.getId());
playerService.savePlayer(player);
conversation.end();
}
答案 0 :(得分:0)
您需要从第一个电话中检索cid参数,并将其与保存电话一起发送,以将请求与正确的会话相关联。