1

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.

BalusC
  • 992,635
  • 352
  • 3,478
  • 3,452
Surya Govi
  • 25
  • 1
  • 6

1 Answers1

2

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:

  1. 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:

  2. 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 your web.xml, you seem to be already using RichFaces. So just declare the a4j taglib in top of JSP and use the <a4j:repeat> as follows:

    <%@taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
    ...
    <a4j:repeat value="#{buildVehicleBean.buildVehicleBO.allVehicles}" var="var1">
        <h:outputText value="#{var1.modelLineName}"/><br/>
    </a4j:repeat>
    
Community
  • 1
  • 1
BalusC
  • 992,635
  • 352
  • 3,478
  • 3,452
  • Thanks BalusC! I have tried using jstl forEach but within forEach loop I cannot access bean attributes using h:outputText - is that somehting wrong I am doing, does h:outputText also work only with facelets? I tried
    This worked! I am happy something working :) appreciate your help. One thing I wanted to point out, lot of answers in this forum is form you, tht's amazing!
    – Surya Govi Feb 09 '12 at 20:30
  • You're welcome. The `` would only work if you have referenced `#{buildVehicleBean}` beforehand in the view. The `${...}` syntax namely won't auto-create managed beans. See also http://stackoverflow.com/questions/7209377/what-is-the-difference-between-and-in-el-syntax Further, since you're new here, please don't forget to mark the answer accepted whenever it helped (most) in solving the problem. See also http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235 – BalusC Feb 09 '12 at 20:42