SUCCESS!  I figured out what was going wrong with my code.  Whew, what a 
tangled mess.

I have a CustomRequestProcessor that initializes variables for users coming to 
the site and it was mucking up because part of my query includes values that 
come from that initialization.  I had thought I had checked for this, but I was 
also getting an error that didn't actually report itself because I check the 
users cookies to see if they had cached their login for me.

Anyway, the problem is all in my own code and nothing funky with Struts/Tiles 
afterall.

Special Thanks to Antonio!!



----- Original Message ----
From: Ryan Henson <[EMAIL PROTECTED]>
To: Struts Users Mailing List <user@struts.apache.org>
Sent: Thursday, July 10, 2008 1:58:13 PM
Subject: Re: Struts-Tiles - Missing Content

I put in the text as you suggested and it did indeed show the text from the 
body.  So now the issue has moved to being that the data variable is not being 
found.  Alright, that helped me find some more issues but we're not quite there 
yet.

The results from the body come back with ONLY "Hello from the body".  The logic 
beyond that should return either the data or the text "I do not see your data", 
but NEITHER is returned.  I do not see any errors in the console to help me 
with this either.  The logic tag simply does not do its job.

Ideas Antonio?  Thanks for your help btw, I really do appreciate it.

Excerpt from ReportAction
________________________________
    public ActionForward getCamperScheduleReport(ActionMapping mapping,
            ActionForm form, HttpServletRequest request,
            HttpServletResponse response) throws Exception {
        logger.info("I'm starting my report");
        DynaValidatorActionForm query = (DynaValidatorActionForm) form;
        QueryService service = new QueryService();
        ReportService service2 = new ReportService();
        Camp camp = (Camp) request.getSession().getAttribute("currentCamp");
        int currentCampID = camp.getCampID();

        String[] camperIDs;
        Report report = (Report) request.getAttribute("report");

        if (query.getString("selectedIDs").indexOf(",") > 0) {
            camperIDs = query.getString("selectedIDs").split(",");
        } else {
            camperIDs = new String[] { query.getString("selectedIDs") };
        }

        logger.info("I have the camper IDs which the first is: " + 
camperIDs[0]);
        
        report.setSelectedIDs(query.getString("selectedIDs"));
        request.setAttribute("report", report);

        request.setAttribute("campers", service.getCampers(currentCampID));
        request.setAttribute("periods", service.getPeriodList());
        if (camperIDs[0].length() > 0) {
            request.setAttribute("data", service2.getCamperScheduleReport(
                    camperIDs, currentCampID));
            logger.info("I've set the data");
        }

        logger.info("All done what's next?");
        if (query.getString("print").equals("true")) {
            return mapping.findForward("camper.print");
        } else {
            return mapping.findForward("camper.view");
        }
    }
________________________________


Updated tools.report.camper.body.jsp
________________________________
<%@ taglib uri="/tags/struts-logic" prefix="logic"%>
<%@ taglib uri="/tags/struts-html" prefix="html"%>
<%@ taglib uri="/tags/struts-bean" prefix="bean"%>
<%@ taglib uri="/tags/jstl/core" prefix="c"%>

Hello from the body

<logic:notPresent name="data">
I do not see your data
</logic:notPresent>

<logic:present name="data">
    <logic:iterate name="data" id="person" indexId="num">
        <logic:notEqual name="num" value="0">
            <c:if test="${num % 3 == 0}">
                <p class="pageBreak" />
            </c:if>
        </logic:notEqual>

        <h3>${person.firstName} ${person.middleInitial} ${person.lastName}</h3>
        <table class="sorted_list" cellpadding="2" cellspacing="0" width="100%">
            <tr>
                <td width="100">
                <table>
                    <tr>
                        <th>Age:</th>
                        <td>${person.age}</td>
                    </tr>
                </table>
                </td>
                <td width="100">
                <table>
                    <tr>
                        <th>Rank:</th>
                        <td>${person.rank}</td>
                    </tr>
                </table>
                </td>
                <td width="100">
                <table>
                    <tr>
                        <th>Troop:</th>
                        <td>${person.troopName}</td>
                    </tr>
                </table>
                </td>
            </tr>
        </table>

        <logic:greaterThan name="person" property="classCount" value="0">

            <table class="sorted_list" cellpadding="2" cellspacing="0" 
width="100%">
                <tr>
                    <th>Period</th>
                    <th>ClassName</th>
                    <th>Instructor</th>
                    <th>Location</th>
                    <th>Area</th>
                    <th>Special Requirements</th>
                </tr>
                <logic:iterate name="periods" id="period">
                    <tr>
                        <td width="30">${period.periodName}</td>
                        <logic:iterate name="person" property="enrollment" 
id="course">
                            <logic:equal name="course" property="periodID"
                                value="${period.periodID}">
                                <td>${course.className}</td>
                                <td>${course.instructorFirstName} 
${course.instructorLastName}</td>
                                <td>${course.locationName}</td>
                                <td>${course.areaName}</td>
                                <td>${course.specialRequirements}</td>
                            </logic:equal>
                        </logic:iterate>
                    </tr>
                </logic:iterate>
            </table>
        </logic:greaterThan>
        <logic:equal name="person" property="classCount" value="0">
            The camper is not enrolled in any classes
        </logic:equal>

    </logic:iterate>
</logic:present>
________________________________




----- Original Message ----
From: Antonio Petrelli <[EMAIL PROTECTED]>
To: Struts Users Mailing List <user@struts.apache.org>
Sent: Thursday, July 10, 2008 10:34:31 AM
Subject: Re: Struts-Tiles - Missing Content

2008/7/10 Ryan Henson <[EMAIL PROTECTED]>:
> I posted the resulting HTML code at the bottom of that last email.

Whoops! Sorry I did not see it.

>  It would appear from my side that the <tiles:insert attribute="body" /> is 
> not executing properly as <tiles:getAsString name="title" /> does actually 
> produce the correct text.

Now I see it, that's strange. I see that in your body JSP page there
is a <logic:present> tag surrounding everything. Can you try putting a
sample text before this tag to see if, at least, the page is called?

Antonio

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]


      

Reply via email to