在请求之间传递对象(Passing objects from request to request)

1.通过SessionMap

        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().put("MyBeanMyValue", myValue);
        FacesContext.getCurrentInstance().getExternalContext().getSessionMap().get("MyBeanMyValue");

2.通过Flash(好像是JSF2.0新引进的一个scope)

        FacesContext.getCurrentInstance().getExternalContext().getFlash().put("rs", rs);//将对象放进去

        <ui:repeat var="r" value="#{flash.rs}">……//在JSF页面上将对象取出来

        注意:当通过这种方式传递对象时,必须保证是在一个RequestScope内完成对象的传递。当从一个页面到另一个页面的过程中被拦截器(如:使用PrettyFace)拦截时会导致你在目标页面取对象时对象已经过期了(死了)。本人认为拦截器拦截页面请求并完成自己的任务后会再根据被拦截的请求发送一次请求,从而导致RequestScope失效(个人观点)。

你可能感兴趣的:(UI,JSF,Flash,任务)