アイスプッシュをWebアプリケーションに統合したいと考えています。iceface 2.0:icepushに値を保持する方法は?
場所の情報を表示するページ(placeinfo.jsf)と、その場所の天気情報を示すui:include weather.jsfがあります。
ユーザーはhttp://xxx.com/xxx/placeinfo.jsf?place=californiaのページにアクセスできます。
コードの簡単な例、
placeinfo.jsf
1)氷:出力値= "placeInfoBean.population"
2)氷:出力値= "placeInfoBean.language"
3)UI:含めます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を呼び出します。レンダリングする("天気");
WeatherBeanは実際にリフレッシュしましたが、postconstrustメソッドが再度実行されましたが、 "california"と思われる "place"のリクエストパラメータがなく、ページが正しく動作しません。
質問:セッションのほかに、PushRendererが何かを実行する前に、どのようにページが値を覚えていますか?
2)WeatherBeanのリクエストパラメータを取得するのは適切な方法ですか?
またはparamリクエストはplaceInfo.jsfからui:paramで渡す必要がありますか?
WeatherBeanでui:paramの値を取得するにはどうすればよいですか?
ありがとうございました!