iceface 2.0: как сохранить ценность в icepush? - PullRequest
0 голосов
/ 03 декабря 2010

Я хотел бы интегрировать Ice Push в свое веб-приложение.

У меня есть страница (placeinfo.jsf), показывающая информацию о месте, и пользовательский интерфейс: включите weather.jsf для информации о погоде этого места.

Пользователи получают доступ к странице в http://xxx.com/xxx/placeinfo.jsf?place=california.

Простой пример кода,
placeinfo.jsf
1) лед: выходное значение = "placeInfoBean.population"
2) лед: выходное значение = "placeInfoBean.language"
3) пользовательский интерфейс: include src = "./ weather.xhtml"

weather.jsf
1) лед: выходное значение = "weatherBean.humidity"
2) лед: выходное значение = "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));
    }
}

WeatherBean.java

@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 снова выполнил обновление, метод постконстрасту, но обнаружил, что нет параметра запроса «place», предполагающего «california», и страница не работает должным образом.

Вопрос:
1) Могу ли я знать, кроме сессии, как страница запоминает значение до того, как PushRenderer что-то сделал?

2) Это правильный способ получить параметр запроса для WeatherBean?
или запрос param должен быть передан с помощью ui: param из placeInfo.jsf?
Как получить значение ui: param в WeatherBean?

Спасибо!

1 Ответ

0 голосов
/ 13 сентября 2011

Вы пытались установить управляемые бины как @SessionScoped? Или @ApplicationScoped? Это сработало?

...