viewscoped bean action无法返回相同的视图

时间:2013-09-20 11:01:36

标签: jsf view-scope

我在使用视图范围的bean时遇到了麻烦。 我在xhtml中有commandbutton,在托管bean中有相关的动作,它应该再次呈现相同的视图。 Action方法返回正常,但没有呈现视图,它在浏览器中停留了“等待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 loads many times during postback,但解决方案对我不起作用。

谢谢!

0 个答案:

没有答案