2010-12-03 1 views
0

アイスプッシュを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の値を取得するにはどうすればよいですか?

ありがとうございました!

答えて

0

マネージドBeanを@SessionScopedとして設定しようとしましたか?または@ApplicationScoped?それは動作しましたか?

関連する問題