web.xml
<!-- JavaServer Faces -->
<context-param>
<param-name>javax.faces.STATE_SAVING_METHOD</param-name>
<param-value>server</param-value>
</context-param>
<context-param>
<param-name>javax.faces.CONFIG_FILES</param-name>
<param-value>/WEB-INF/faces-config.xml,/WEB-INF/faces-managed-beans.xml,/WEB-INF/faces-navigation.xml</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.SKIN</param-name>
<param-value>blueSky</param-value>
</context-param>
<context-param>
<param-name>org.richfaces.CONTROL_SKINNING</param-name>
<param-value>enable</param-value>
</context-param>
<context-param>
<param-name>com.sun.faces.validateXml</param-name>
<param-value>true</param-value>
</context-param>
<filter>
<display-name>RichFaces Filter</display-name>
<filter-name>richfaces</filter-name>
<filter-class>org.ajax4jsf.Filter</filter-class>
</filter>
<filter-mapping>
<filter-name>richfaces</filter-name>
<servlet-name>Faces Servlet</servlet-name>
<dispatcher>REQUEST</dispatcher>
<dispatcher>FORWARD</dispatcher>
<dispatcher>INCLUDE</dispatcher>
</filter-mapping>
<listener>
<listener-class>com.sun.faces.config.ConfigureListener</listener-class>
</listener>
<!-- Faces Servlet -->
<servlet>
<servlet-name>Faces Servlet</servlet-name>
<servlet-class>javax.faces.webapp.FacesServlet</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<listener>
<listener-class>
org.springframework.web.context.request.RequestContextListener</listener-class>
</listener>
<!-- Faces Servlet Mapping -->
<servlet-mapping>
<servlet-name>Faces Servlet</servlet-name>
<url-pattern>*.jsf</url-pattern>
</servlet-mapping>
<login-config>
<auth-method>BASIC</auth-method>
</login-config>
faces-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<faces-config version="1.2" xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xi="http://www.w3.org/2001/XInclude" 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">
<validator>
<validator-id>com.test..view.validator.Regex</validator-id>
<validator-class>com.test..view.validator.regex.RegexValidator</validator-class>
</validator>
<application>
<locale-config>
<default-locale>en</default-locale>
</locale-config>
<message-bundle>com.test..view.resources.bundle.Messages</message-bundle>
</application>
</faces-config>
JSP file
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<%@ taglib uri="http://java.sun.com/jsf/core" prefix="f" %>
<%@ taglib uri="http://java.sun.com/jsf/html" prefix="h" %>
<html>
<head>
</head>
<body onload="alert(\"test\")">
It works <hr/>
<f:view>
<h:form>
<ui:repeat value="${buildVehicleBean.buildVehicleBO.allVehicles}" var="var1">
<h:outputText value="#{var1.modelLineName}"/><br/>
</ui:repeat>
</h:form>
</f:view>
</body>
</html>
When I view source in browser, I see
...
<ui:repeat value="[com.test.model.bo.CarBO@3f9ba5,
com.test.model.bo.CarBO@38662,
com.test.model.bo.CarBO@16b9c59,
com.test.model.bo.CarBO@1e5bbb0,
com.test.model.bo.CarBO@1855620,
com.test.model.bo.CarBO@d984ff,
com.test.model.bo.CarBO@1dd4000,
com.test.model.bo.CarBO@100bb12,
com.test.model.bo.CarBO@f9d8ce]" var="var1">
<br/>
</ui:repeat>
...
As you see nothing other than ‘br’ tag within ui:repeat.
It seems very simple to me, obviously I am missing something somewhere, it is hard to find it. If I use something simple like a constant value it works
<h:outputText value="#{12345}"/><br/>
<h:outputText value="#{buildVehicleBean.testDouble}"/><br/>
If I use ‘#’ instead of ‘$’ in the following line it gives error
<ui:repeat value="${buildVehicleBean.buildVehicleBO.allVehicles}" var="var1">
I new to JSF and coming from JSP & Struts background.
The
<ui:repeat>tag is part of Facelets view technology. But you’re still using the ancient JSP view technology. They cannot be used together. You cannot use Facelets tags in JSP or the other way round. Basically, Facelets is the successor of JSP.You have 2 options:
Replace JSP by Facelets. This is quite a work if you have a lot of existing JSP pages though. For references, check the following links:
Use JSTL
<c:forEach>or RichFaces’<a4j:repeat>instead. They offer similar syntax and functionality. You should only take into account that the JSTL one runs during view build time while the RichFaces’ one runs during view render time. Based on yourweb.xml, you seem to be already using RichFaces. So just declare thea4jtaglib in top of JSP and use the<a4j:repeat>as follows: