У меня есть следующий код XHTML:
<body>
<ui:composition template="/WEB-INF/inc/template.xhtml">
<ui:define name="pagename">
Home Page
</ui:define>
<ui:define name="content">
#{homeBean.message}
<p/><br/>
</ui:define>
</ui:composition>
</body>
, и у меня есть следующий bean init ():
@PostConstruct
public void init() {
message= "place holder for now";
LOG.info("we are in HOME BEAN init()");
try {
LOG.info("before flash insert travelRequest : " + travelRequest);
LOG.info("Flash map before insert FacesContext.getCurrentInstance().getExternalContext().getFlash() : " + FacesContext.getCurrentInstance().getExternalContext().getFlash());
FacesContext.getCurrentInstance().getExternalContext().getFlash().put("TravelRequest", travelRequest);
LOG.info("Flash map after insert FacesContext.getCurrentInstance().getExternalContext().getFlash() : " + FacesContext.getCurrentInstance().getExternalContext().getFlash());
LOG.info("after flash get travelRequest : " + FacesContext.getCurrentInstance().getExternalContext().getFlash().get("TravelRequest"));
}
}
Кажется, что объект, который я вставил во флэш-память, сохраненво вспышке, но когда я пытаюсь вытащить его, я получаю ноль.Примечание. Под этим небольшим фрагментом кода есть еще один код, но этот фрагмент кода разрушает, возвращая мне ноль для объекта, помещаемого во флэш-память.
Вот вывод журнала:
INFO - we are in HOME BEAN init()
INFO - before flash insert travelRequest : dao.TravelRequest@578c90eb
INFO - Flash map before insert FacesContext.getCurrentInstance().getExternalContext().getFlash() : []
INFO - Flash map after insert FacesContext.getCurrentInstance().getExternalContext().getFlash() : [ {TravelRequest, dao.TravelRequest@578c90eb}]
INFO - after flash get travelRequest : null
Так ясно, что мой объект попадает во вспышку, но я не могу вернуть его обратно.Я получаю только ноль.
что происходит?