0

我在使用视图范围 bean 时遇到问题。我在 xhtml 中有命令按钮,在托管 bean 中有关联的操作,应该再次呈现相同的视图。操作方法返回正常,但没有呈现视图,它在浏览器中卡住了“等待本地主机”消息。由于某种原因,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>

后备豆:

@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