0

ビュー スコープ Bean に問題があります。xhtml にコマンドボタンがあり、マネージド Bean に関連付けられたアクションがあり、同じビューを再度レンダリングすることになっています。アクション メソッドは問題なく返されますが、ビューがレンダリングされず、ブラウザーで「localhost を待機しています」というメッセージが表示されたままになります。なぜか bean の @PreDestroy メソッドと、その中に注入された ejb の @PostConstruct メソッドが複数回呼び出されます (無限のようです)。Bean を Sessionscoped に変更すると、すべて正常に動作します。私はnetbeans 7.2.1を使用しており、JSFフレームワークが追加されたWebアプリケーションに取り組んでいます。

xhtml 部分:

 <h:form id="getmovie" >
            <h:panelGrid id="movienameform" columns="3" rendered="#{!MovieBean.choseMovie}">
                <h:outputLabel for="moviename" value="Movie name: "/>
                <h:inputText id="moviename" value="#{MovieBean.name}"/>
                <h:commandButton value="submit" action="#{MovieBean.checkMovieExists()}"> 

                </h:commandButton>
            </h:panelGrid>
</h:form>

バッキング Bean:

@Named(value = "MovieBean")
@ViewScoped
public class MovieBean implements Serializable {
private String name;
private boolean exist;
private boolean searched = false;
private boolean choseMovie = false;
@EJB
MovieejbLocal movieejb;
ScreenejbLocal screenejb;
public String checkMovieExists() {
    setExist(getMovieejb().checkMovieExists(getName()));
    searched = true;
    return null;
}
...
}

と ejb

@Stateful
@Local(MovieejbLocal.class)
public class Movieejb implements MovieejbLocal {
....
}

この Bean は、セッション スコープではなく、ビュー スコープにする必要があります。ここでviewScopedの何が問題なのですか?

私はこの質問を見てきました: @ViewScoped Managed Bean は postback 中に何度もロードされますが、解決策がうまくいきません。

ありがとう!

4

0 に答える 0