【发布时间】:2012-09-26 15:09:04
【问题描述】:
我已经尝试了几十个谷歌搜索中的每一个解决方案:getRequestMap、ElResolver、evaluateExpressionGet 等等。没有,绝对没有,工作。我每次都收到null。以下是相关代码:
@ManagedBean(name="readerBean")
@ViewScoped
public class ReaderBean implements Serializable {...
在 PhaseListener 中:
public void beforePhase(PhaseEvent event) {
if (event.getPhaseId() == PhaseId.RESTORE_VIEW) {
ReaderBean r = null; //The Managed Bean
try {
FacesContext fctx = FacesContext.getCurrentInstance();
r=(ReaderBean) fctx.getExternalContext().getRequestMap().get("readerBean");
r=(ReaderBean) fctx.getELContext().getELResolver().getValue(fctx.getELContext(), null, "readerBean");
r=(ReaderBean) fctx.getApplication().getExpressionFactory().createValueExpression(fctx.getELContext(), "#{readerBean}", ReaderBean.class).getValue(fctx.getELContext());
r=(ReaderBean) fctx.getApplication().evaluateExpressionGet(fctx, "#{readerBean}", ReaderBean.class);
没有用!!!
【问题讨论】:
-
呃...我感觉这与我试图在还原视图的 beforePhase 中运行此代码有关。
-
确实,我在 3 秒前已经详细解释过了。
标签: jsf-2 managed-bean phaselistener