【发布时间】:2014-01-07 09:29:27
【问题描述】:
我正在尝试使用 Omnifaces 实现 ViewScoped CDI bean。使用 jsf 页面中的 ajax 调用使用 primefaces 数据表的搜索结果填充列表的 Bean 方法。如果 bean 范围设置为 session 一切正常。当我尝试将范围设置为 Omnifaces ViewScope 时,容器开始无缘无故地多次创建和销毁 bean。这是 bean 代码:
...
import javax.inject.Named;
import org.omnifaces.cdi.ViewScoped;
@Named
@ViewScoped
public class FindClientBean implements Serializable {
@Inject
private ClientDAO clientDAO;
@NotNull(message="Search string cannot be empty")
private String searchString;
private List<Client> resultList;
@PostConstruct
public void init() {
System.out.println("init");
}
@PreDestroy
public void end() {
System.out.println("end");
}
public void findClient() {
System.out.println("method");
resultList = clientDAO.findClientByNameOrLastnamePart(searchString);
}
//Getters and setters..
}
示例输出(一个方法调用有更多的初始化和结束,我跳过了它们):
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-4) init
01:51:50,044 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-4) end
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,045 INFO [stdout] (http-localhost-127.0.0.1-9090-4) init
01:51:50,046 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,046 INFO [stdout] (http-localhost-127.0.0.1-9090-4) method
01:51:50,047 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,047 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,048 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,048 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
01:51:50,049 INFO [stdout] (http-localhost-127.0.0.1-9090-5) init
01:51:50,049 INFO [stdout] (http-localhost-127.0.0.1-9090-5) end
它可以是什么?没有找到相关的问题。 我的配置:JBoss AS 7.1、Omnifaces 1.6.3、Primefaces 4.0
【问题讨论】:
-
你在客户端做什么动作?
-
究竟是哪个 AS 7.1 颠覆? 7.1.0?因此,使用 Mojarra 2.1.5?而且,当您使用
javax.faces.bean包中的@ManagedBean @ViewScoped时,问题会消失吗? -
Alexandre:我正在尝试通过来自数据库的 ajax 请求使用搜索字符串填充 primefaces 数据表。
-
@BalusC:我正在使用 AS 7.1.1 和 Mojarra JSF 2.1.7。当我使用 ManagedBean ViewScoped 时,一切正常。
-
我目前在使用 JBoss EAP 6.0.1 时遇到同样的问题
标签: jsf primefaces cdi omnifaces