Jsf Omnifaces ViewScope bean被反复创建
我正在尝试使用Omnifaces实现ViewScope的CDIBean。使用jsf页面中的ajax调用用primefaces数据表的搜索结果填充列表的Bean方法。如果bean范围设置为session,那么一切都正常工作。当我尝试将作用域设置为OmniFacesViewScope时,容器开始多次无理由地创建和销毁bean。下面是bean代码:Jsf Omnifaces ViewScope bean被反复创建,jsf,primefaces,cdi,omnifaces,Jsf,Primefaces,Cdi,Omnifaces,我正在尝试使用Omnifaces实现ViewScope的CDIBean。使用jsf页面中的ajax调用用primefaces数据表的搜索结果填充列表的Bean方法。如果bean范围设置为session,那么一切都正常工作。当我尝试将作用域设置为OmniFacesViewScope时,容器开始多次无理由地创建和销毁bean。下面是bean代码: ... import javax.inject.Named; import org.omnifaces.cdi.ViewScoped; @Named @
...
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..
}
可能是什么?没有找到相关问题。
我的配置:JBossAS 7.1、Omnifaces 1.6.3、Primefaces 4.0,我也遇到了同样的问题。它对我不起作用的原因是,在我的项目属性->项目方面是3.0版的动态Web项目 但在web.xml中,项目保存为2.5 所以我把2.5改成了3.0,看起来像这样:
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>zjazdi</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>
兹贾兹迪
Facesservlet
javax.faces.webapp.FacesServlet
1.
Facesservlet
/面孔/*
您在客户端执行什么操作?确切地说是7.1 subversion?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 ViewScope时,一切都正常工作。我目前在JBoss EAP 6.0.1中面临同样的问题
<?xml version="1.0" encoding="UTF-8"?>
<web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns="http://java.sun.com/xml/ns/javaee"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" version="3.0">
<display-name>zjazdi</display-name>
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>/faces/*</url-pattern>
</servlet-mapping>
</web-app>