Jsf iceface 2.0:如何在icepush中保留价值?

Jsf iceface 2.0:如何在icepush中保留价值?,jsf,jsf-2,icefaces,Jsf,Jsf 2,Icefaces,我想将ice推送集成到我的web应用程序中 我有一个页面(placeinfo.jsf)显示一个地方的信息,ui:include weather.jsf显示该地方的天气信息 用户可以访问位于的页面 代码的简单示例, placeinfo.jsf 1) ice:output value=“placeInfoBean.population” 2) ice:output value=“placeInfoBean.language” 3) ui:include src=“./weather.xhtml” w

我想将ice推送集成到我的web应用程序中

我有一个页面(placeinfo.jsf)显示一个地方的信息,ui:include weather.jsf显示该地方的天气信息

用户可以访问位于的页面

代码的简单示例,
placeinfo.jsf
1) ice:output value=“placeInfoBean.population”
2) ice:output value=“placeInfoBean.language”
3) ui:include src=“./weather.xhtml”

weather.jsf
1) 冰:输出值=“weatherBean.湿度”
2) ice:output value=“weatherBean.visibility”

PlaceInfoBean.java

@ManagedBean(name="placeInfoBean")
@RequestScoped
public class PlaceInfoBean
{
    String population;
    String language;

    @PostConstruct
    public void init()
    {
       HttpServletRequest request= (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       String place = request.getParameter("place");
       setPopulation(PlaceInfoDao.getPopulation(place));
       setLanguage(PlaceInfoDao.getlanguage(place));
    }
}
@ManagedBean(name="weatherBean")
@RequestScoped
public class WeatherBean
{
    String humidity;
    String visibility;

    @PostConstruct
    public void init()
    {
       HttpServletRequest request= (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       String place = request.getParameter("place");
       setHumidity(WeatherDao.getHumidity(place));
       setVisibility(WeatherDao.getVisibility(place));
    }

    public WeatherBean()
    {
        PushRenderer.addCurrentSession("weather");
    }
}
WeatherBean.java

@ManagedBean(name="placeInfoBean")
@RequestScoped
public class PlaceInfoBean
{
    String population;
    String language;

    @PostConstruct
    public void init()
    {
       HttpServletRequest request= (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       String place = request.getParameter("place");
       setPopulation(PlaceInfoDao.getPopulation(place));
       setLanguage(PlaceInfoDao.getlanguage(place));
    }
}
@ManagedBean(name="weatherBean")
@RequestScoped
public class WeatherBean
{
    String humidity;
    String visibility;

    @PostConstruct
    public void init()
    {
       HttpServletRequest request= (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
       String place = request.getParameter("place");
       setHumidity(WeatherDao.getHumidity(place));
       setVisibility(WeatherDao.getVisibility(place));
    }

    public WeatherBean()
    {
        PushRenderer.addCurrentSession("weather");
    }
}
我有另一个页面来更新天气,该方法调用
PushRenderer.render(“天气”)
WeatherBean实际上重新运行了一个refresh,postconstrust方法,但发现没有假定为“california”的“place”请求参数,并且页面无法正常工作。

问题:
1) 除了会话之外,页面在执行操作之前如何记住值?

2) 获取WeatherBean的请求参数是否合适?
或者请求参数应该由ui:param从placeInfo.jsf传递?
如何在WeatherBean中获取ui:param的值


谢谢大家!

您是否尝试将托管bean设置为@SessionScoped?或者@ApplicationScoped?它起作用了吗