Struts Missing Taglib ?

I have the following jsp page created using the jsp editor in WSAD 5.1. The editor says the page is clean, that is, there are no warnings or errors. However when I display the form on the server I get the following message.

Error 500: Error while defining class: org.apache.taglibs.standard.tag.rt.core.ForEachTag This error indicates that the class: Error while defining class: org.apache.taglibs.standard.tag.common.core.ForEachSupport This error indicates that the class: javax.servlet.jsp.jstl.core.LoopTagSupport could not be located while defining the class: org.apache.taglibs.standard.tag.common.core.ForEachSupport This is often caused by having the class at a higher point in the classloader hierarchy Dumping the current context classloader hierarchy: ==> indicates defining classloader *** indicates classloader where the missing class could have been found ==>[0] com.ibm.ws.classloader.CompoundClassLoader@398a398a.

I double checked and the referenced tag libs are included in the WEB-INF/lib..

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/c-rt.tld" prefix="c" %>

. am I missing a taglib ? or is there another issue ?.



<?xml version="1.0" encoding="ISO-8859-1" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">

<%@ taglib uri="/WEB-INF/struts-html.tld" prefix="html" %>
<%@ taglib uri="/WEB-INF/struts-bean.tld" prefix="bean" %>
<%@ taglib uri="/WEB-INF/c-rt.tld" prefix="c" %>
<%@ page import = "pweh.otb.beans.*" %>
<%@ page import = "pweh.otb.beans.org.lookups.*" %>


<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<%@ page
language="java"
contentType="text/html; charset=ISO-8859-1"
%>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
<meta name="GENERATOR" content="IBM WebSphere Studio" />

<title>OT Plan Report Screen</title>
<link href="css/dashboardstyles.css" rel="stylesheet" type="text/css" />
<script>
             function viewDetail(name) {
                   window.open(name,"newWin","width=600,height=400,top=100,left=150,menubar=no,toolbar=no,scrollbars=yes");
            }
</script>

</head>

<body>
<p class="banner">
 <img src="images/report.jpg" /> <br />
</p>

<table border="1" cellspacing="1" cellpadding="1">

      <tr class="bg0">
            <td colspan="2"></td>
            <td colspan="3" align="center">Regular Hour</td>
            <td></td>
            <td colspan="2" align="center">AWW (M,T,W,Th)</td>
            <td></td>
            <td colspan="2" align="center">AWW (F,S,Su)</td>
            <td></td>
            <td colspan="2" align="center">AWW (M,T,W)</td>
            <td></td>
            <td colspan="2" align="center">AWW (M,S,Su)</td>
      </tr>

      <tr class="bg0">
            <td colspan="2" align="center">Dept</td>
            <td align="center">1st Shift</td>
            <td align="center">2nd Shift</td>
            <td align="center">3rd Shift</td>


            <td></td>
            <td align="center">1st Shift</td>
            <td align="center">2nd Shift</td>

            <td></td>
            <td align="center">1st Shift</td>
            <td align="center">2nd Shift</td>

            <td></td>
            <td align="center">1st Shift</td>
            <td align="center">2nd Shift</td>

            <td></td>
            <td align="center">1st Shift</td>
            <td align="center">2nd Shift</td>


      </tr>


<c:forEach items="${businessUnit.getdepts()}" var="dept">
            <tr class="bg3">
            
            <c:choose>
                  <c:when test="${dept.type == 'dept'}">
                        <td> &nbsp; </td>
                        <td align="left" colspan="2"><b><c:out value="${dept.getdeptname()}"/</b></td>
                  </c:when>                                    
                  <c:otherwise>
                        <td align="left" colspan="2"><b><c:out value="${dept.getbuname()}"/</b></td>
                  </c:otherwise>
            </c:choose>
            
            
            
            <c:forEach items="${dept.getschedules()}" var="sched">
                  <c:forEach items="${sched.getshifts()}" var="shift">                  
                                       
                           <c:choose>
                                    <c:when test="${shift.status == 'green'}">
                                          <td align="center"><img src="images/greendot.gif" /></td>
                                    </c:when>
                                    <c:when test="${shift.status == 'yellow'}">
                                          <td align="center"><img src="images/yellowdot.gif" /></td>
                                    </c:when>                                    
                                    <c:otherwise>
                                          <td align="center"><img src="images/reddot.gif" /></td>
                                    </c:otherwise>
                              </c:choose>
                              
                        </c:forEach>
                  </c:forEach>                  
                  </tr>
      </c:forEach>
</table>
</body>
</html>

OMyStuckAginAsked:
Who is Participating?
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

PeteKelleyCommented:
Please double-check -- the referenced tag lib files (such as c-rt.tld) should be directly in the WEB-INF folder according to your code.  
Also - it appears that Websphere cannot see your .jar file that should have the javax.servlet.jsp.jstl.core.LoopTagSupport class in it (which should be in your WEB-INF/lib folder).   In my application that file is jstl.jar.
I apologize in advance for the step-by-step description here, but I can't guess your familiarity with Websphere.  In Webpshere (or Eclipse) to check that the jar file is there
    1*right-click on the Web project,
    2*select properties
    3*from that dialog select "Java Build Path"
    4*look for the jstl.jar file amongst the "Libraries" tab entries
If the jstl.jar file isn't available here, then you must add it using the "Add External Jars" button.
If however it *is* there, then please describe where among the files - there may be more issues.
I hope this helps!
Pete

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
PeteKelleyCommented:
One other thing -- I don't know which version you're using, but try using

<%@ taglib uri="/WEB-INF/c.tld" prefix="c" %>

instead of

<%@ taglib uri="/WEB-INF/c-rt.tld" prefix="c" %>

Regards!
Pete
OMyStuckAginAuthor Commented:
Thanks PeteKelley.....that was exactly the problem, I forgot to put the jstl.jar in the project. Sorry it took so long for me to notice your post, but I've been moved on to two other #1 priorities since I posted this, don't you just love IT...but yours was an excellent and easy to follow explanation.
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
Web Development

From novice to tech pro — start learning today.