主な状況は、@RequestScoped として機能する @ViewScoped があることです。
Atm、@RequestScoped Bean が背後にあるアイテムのリストを含むビューがあります。このアイテムの 1 つを更新したい場合は、@ViewScoped が背後にあるビューに移動します。
このビューから投稿すると、リスト ビューに戻り、@ViewScoped が破棄されます。ここまでは順調ですね。
問題は、@ViewScoped Bean でビューを更新すると、すべての Bean の属性が null になることです。@RequestScoped のように見えます。また、毎回呼び出される @PostConstruct メソッドがありますが、そうすべきではありません。
@ViewScoped を使用したビューでは、コード全体で h:selectOneMenu 、 rich:fileUpload 、 a4j:repeat 、 a4j:ajax 、 h:commandLink のタグを使用します。
私が持っているのは大きなフォームなので、完全なコードは入れませんでした。
これは以前に起こっていなかったので、何が起こっているのかわかりません。詳細情報が必要な場合は、お問い合わせください。
よろしく。
編集:
ポストを作成するメソッドを実行すると (項目のデータが DB に保存されます)、Bean にすべてのデータが含まれます。しかし、そこからデータを取得したいのは、Beanが空のときです。
例:
<h:outputLabel value="#{locale.link}:" />
<h:inputText value="#{newsBean.newsLink}"
disabled="#{not newsBean.editPage}" />
<h:link value="#{newsBean.newsLink}" target="_blank"/>
リンクを押すと、Bean が空なので、アイテム「ニュース」への null ポインターが取得されます。