You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@myfaces.apache.org by Niket Arora <ni...@induslogic.com> on 2005/02/08 13:54:56 UTC

Mixing JSTL & JSF

Hi,

 

I found a problem when I tried to mix JSTL tags with JSF tag. 

 

<c:forEach items="${UserBean.pageExtraPathList}" var="pagePath"
varStatus="currentStatus"  >

      <c:set var="index" value="${currentStatus.index}" scope="request"
></c:set>

      <c:set var="path" value="${pagePath}" scope="request" ></c:set>

      <%System.out.println("index"+request.getAttribute("index")); %>

      <%System.out.println("path"+request.getAttribute("path")); %>

      <h:outputText value="#{index}" />

      <h:outputText value="#{path}" />

</c:forEach>

 

-----------------Console Output----------------------

Index0

Path<<UserBean.pageExtraPathList[0]>>

Index1

Path<<UserBean.pageExtraPathList[1]>>

Index2

Path<<UserBean.pageExtraPathList[2]>>

Index3

Path<<UserBean.pageExtraPathList[3]>>

-----------------------------------------------------



-----------HTML Output on browser--------------------

3<<UserBean.pageExtraPathList[3]>>3<<UserBean.pageExtraPathList[3]>>3<<UserB
ean.pageExtraPathList[3]>>3<<UserBean.pageExtraPathList[3]>>

-----------------------------------------------------

 

My basic need to intermix the two is to include dynamic jsps conditionally.
As there is no <jsp:include/> or <c:import/> like tag in JSF. 

<c:forEach items="${UserBean.pageExtraPathList}" var="pagePath"
varStatus="currentStatus"  >

      <c:set var="index" value="${currentStatus.index}" scope="request"
></c:set>

      <c:set var="path" value="${pagePath}" scope="request" ></c:set>

      <f:subview id="wizardPage#{index}" rendered="#{UserBean.currentPage ==
(index+1)}">

            <c:import url="${pagePath}"></c:import>

      </f:subview>

</c:forEach>

 

Thanks

Niket


Re: Mixing JSTL & JSF

Posted by Matthias Wessendorf <ma...@matthias-wessendorf.de>.
Hi,

<c:forEach/> does not work with JSF
but some other JSTL tags may work
(eg <jsp:include/> or <c:import/>)

See spec of JSF and/or this article:
http://www.onjava.com/pub/a/onjava/2004/06/09/jsf.html

BTW. Oracle's ADF Faces (a set of JSF components)
ship such a "forEach" component.

HTH,
Matthias


Niket Arora wrote:
> Hi,
> 
>  
> 
> I found a problem when I tried to mix JSTL tags with JSF tag. 
> 
>  
> 
> <c:forEach items="${UserBean.pageExtraPathList}" var="pagePath"
> varStatus="currentStatus"  >
> 
>       <c:set var="index" value="${currentStatus.index}" scope="request"
> 
>></c:set>
> 
> 
>       <c:set var="path" value="${pagePath}" scope="request" ></c:set>
> 
>       <%System.out.println("index"+request.getAttribute("index")); %>
> 
>       <%System.out.println("path"+request.getAttribute("path")); %>
> 
>       <h:outputText value="#{index}" />
> 
>       <h:outputText value="#{path}" />
> 
> </c:forEach>
> 
>  
> 
> -----------------Console Output----------------------
> 
> Index0
> 
> Path<<UserBean.pageExtraPathList[0]>>
> 
> Index1
> 
> Path<<UserBean.pageExtraPathList[1]>>
> 
> Index2
> 
> Path<<UserBean.pageExtraPathList[2]>>
> 
> Index3
> 
> Path<<UserBean.pageExtraPathList[3]>>
> 
> -----------------------------------------------------
> 
> 
> 
> -----------HTML Output on browser--------------------
> 
> 3<<UserBean.pageExtraPathList[3]>>3<<UserBean.pageExtraPathList[3]>>3<<UserB
> ean.pageExtraPathList[3]>>3<<UserBean.pageExtraPathList[3]>>
> 
> -----------------------------------------------------
> 
>  
> 
> My basic need to intermix the two is to include dynamic jsps conditionally.
> As there is no <jsp:include/> or <c:import/> like tag in JSF. 
> 
> <c:forEach items="${UserBean.pageExtraPathList}" var="pagePath"
> varStatus="currentStatus"  >
> 
>       <c:set var="index" value="${currentStatus.index}" scope="request"
> 
>></c:set>
> 
> 
>       <c:set var="path" value="${pagePath}" scope="request" ></c:set>
> 
>       <f:subview id="wizardPage#{index}" rendered="#{UserBean.currentPage ==
> (index+1)}">
> 
>             <c:import url="${pagePath}"></c:import>
> 
>       </f:subview>
> 
> </c:forEach>
> 
>  
> 
> Thanks
> 
> Niket
> 
> 

-- 
Matthias Weßendorf
Aechterhoek 18
DE-48282 Emsdetten
Germany
phone: +49-2572-9170275
cell phone: +49-179-1118979
email: matzew AT apache DOT org
url: http://www.wessendorf.net
callto://mwessendorf (Skype)
icq: 47016183