How to use Managed Bean reference inside faces-config.xml?
Managed Bean in JSF can refer another managed bean inside the faces-config.xml. There is no restriction for the type of bean can be refered. But, JSF does not support the cyclic dependencies for Managed Bean reference. For example, you cannot refer bean B from bean A while bean B also refers to bean A. The following simple program demonstrates how to refer a listBean inside a normal JSF Managed Bean. For simplicity purpose this example use List as managed bean. You can use any type of bean for the reference.
JSP File (index.jsp)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
| <%@taglib prefix="f" uri="http://java.sun.com/jsf/core"%>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html"%>
<html>
<body>
<f:view>
<h:form>
<h:dataTable var="loc" value="#{jsfBean.listValues}">
<h:column>
<h:outputText value="#{loc}" />
</h:column>
</h:dataTable>
</h:form>
</f:view>
</body>
</html> |
JavaBean (JavaBeatJsfBean.java)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package javabeat.net.jsf;
import java.util.List;
/**
* source : www.javabeat.net
*/
public class JavaBeatJsfBean {
private List listValues;
public List getListValues() {
return listValues;
}
public void setListValues(List listValues) {
this.listValues = listValues;
}
} |
faces-config.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| <?xml version='1.0' encoding='UTF-8'?>
<faces-config version="1.2"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-facesconfig_1_2.xsd">
<managed-bean>
<managed-bean-name>jsfBean</managed-bean-name>
<managed-bean-class>javabeat.net.jsf.JavaBeatJsfBean</managed-bean-class>
<managed-bean-scope>request</managed-bean-scope>
<managed-property>
<property-name>listValues</property-name>
<value>#{listBean}</value>
</managed-property>
</managed-bean>
<managed-bean>
<managed-bean-name>listBean</managed-bean-name>
<managed-bean-class>java.util.ArrayList</managed-bean-class>
<managed-bean-scope>none</managed-bean-scope>
<list-entries>
<value>Steve Jobs</value>
<value>Sergy Brin</value>
<value>Larry Page</value>
<value>Anil Ambani</value>
</list-entries>
</managed-bean>
</faces-config> |
Comments
comments
July 12, 2008
JSF