I'll stick with None None until I get this figured out :)

That didn't seem to help either... I actually thought of that previously, I figured at some point there has to be some code casting an Object to a File object, otherwise certainly the getName() method call is going to fail. I tried again anyway, and it didn't help.

From: "Geeta Ramani" <[EMAIL PROTECTED]>
Reply-To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
To: "Struts Users Mailing List" <[EMAIL PROTECTED]>
Subject: RE: Some further newbie woes
Date: Thu, 6 May 2004 15:28:14 -0400

None None: (or Someone Someone..;))

In fact maybe just adding the "type" attribute to your orignal iterate will work I think:

<logic:iterate id="drive" name="listDrivesForm" property="drives" type="java.io.File">
<tr><td><bean:write name="drive" property="name" /></td></tr>
</logic:iterate>


Regards,
Geeta

> -----Original Message-----
> From: Solley, Tim [mailto:[EMAIL PROTECTED]
> Sent: Thursday, May 06, 2004 3:31 PM
> To: Struts Users Mailing List
> Subject: RE: Some further newbie woes
>
>
> Hi None None...
>
> So in your JSP you are iterating over an ArrayList of File
> objects, trying to get at a property inside the File objects.
>  To get at nested objects, you use the Struts nested tag library.
>
> Try replacing your <logic:iterate....> with the equivalent
> from the nested library: (below off the top of my head)
>
> <nested:iterate id="drive" name="listDrivesForm"
> property="drives" type="java.io.File">
>    <nested:write name="drive" property="name"/>
> </nested:iterate>
>
> See if you have luck with that.
>
>
>
> -----Original Message-----
> From: None None [mailto:[EMAIL PROTECTED]
> Sent: Thursday, May 06, 2004 2:16 PM
> To: [EMAIL PROTECTED]
> Subject: Some further newbie woes
>
>
> Ok, I've banged my head enough in the past two hours...
>
> I'm working on a file manager Struts app to get myself
> acquainted with
> Struts.  The first logical step is a list of drives.  Here's
> what I've
> done...
>
> I have created an index.jsp that does a quick forward to
> main.jsp (just like
> the blank struts app does).  In main.jsp I have a simple link to
> listDrives.ofm (using extension mapping in this app).  Here's my
> struts-config.xml file, minus comments, linebreaks and the
> XML & doctype
> tags (to save space here)...
>
> <struts-config>
>     <form-beans>
>       <form-bean name="listDrivesForm"
> type="com.omnytex.ofm.actionforms.ListDrivesForm" />
>     </form-beans>
>     <global-forwards>
>       <forward name="main" path="/main.ofm" />
>     </global-forwards>
>     <action-mappings>
>       <action path="/main"
> type="org.apache.struts.actions.ForwardAction"
> parameter="/jsp/main.jsp" />
>       <action path="/listDrives"
> type="com.omnytex.ofm.actions.ListDrivesAction" name="listDrivesForm"
> scope="request" validate="false">
>         <forward name="showDrivesList" path="/jsp/drivesList.jsp" />
>       </action>
>     </action-mappings>
> </struts-config>
>
> Simple enough.  So, I click my link and the following ActionForm is
> instantiated in request scope:
>
> package com.test.ofm.actionforms;
> import org.apache.struts.action.*;
> import java.io.*;
> import java.util.*;
> public class ListDrivesForm extends ActionForm {
>   private ArrayList drives = null;
>   public ListDrivesForm() {
>     drives = null;
>   }
>   public void setDrives(File[] inDrives) {
>     drives = new ArrayList();
>     for (int i = 0; i < inDrives.length; i++) {
>       drives.add(inDrives[i]);
>     }
>   }
>   public ArrayList getDrives() {
>     return drives;
>   }
> }
>
> Also simple enough.  Next, the following action executes:
>
> package com.test.ofm.actions;
> import org.apache.struts.action.*;
> import java.io.*;
> import javax.servlet.http.*;
> import com.test.ofm.actionforms.*;
> public class ListDrivesAction extends Action {
>   public ActionForward execute(ActionMapping mapping,
> ActionForm form,
> HttpServletRequest request, HttpServletResponse response)
> throws Exception {
>     File[] drives = File.listRoots();
>     ListDrivesForm ldf = (ListDrivesForm)form;
>     ldf.setDrives(drives);
>     return mapping.findForward("showDrivesList");
>   }
> }
>
> Now, to this point I am OK because if I do a simple println of
> ldf.getDrives(), I in fact get a list of the drives on my system as
> expected.  So, I know my basic flow to this point is OK, and
> I know the code
> in the action is doing what I expect.  Lastly, I have the
> following JSP:
>
> <%@ page language="java"
> import="java.io.*,com.omnytex.ofm.actionforms.*" %>
> <%@ taglib uri="/WEB-INF/tld/struts-logic.tld" prefix="logic" %>
> <%@ taglib uri="/WEB-INF/tld/struts-bean.tld" prefix="bean"%>
> <html>
> <head>
> <title>File Manager</title>
> </head>
> <body>
> File Manager
> <br><hr><br>
> <table border="1" cellpadding="0" cellspacing="0" width="100%">
>   <logic:iterate id="drive" name="listDrivesForm" property="drives">
>     <tr><td><bean:write name="drive" property="name" /></td></tr>
>   </logic:iterate>
> </table>
> </body>
> </html>
>
> This is where the problem arises... My table is being built,
> and the proper
> number of rows are there, but I'm not seeing the drive letter being
> displayed.  I have verified that my listDrivesForm is present
> and populated
> by donig:
>
> <%
>   ListDrivesForm ldf =
> (ListDrivesForm)request.getAttribute("listDrivesForm");
>   System.out.println(ldf);
> %>
>
> Sure enough, I see my drive list.  Now, I've been playing
> with various names
> and ID combinations in the logic:iterate and bean:write tags,
> but nothing
> seems to make it work.  I've also tried in place of bean:write:
>
> <tr><td><%=((File)drive).getName()%></td></tr>
>
> From my reading I expected that to work just as well.  I've
> also tried
> adding the scope attribute to the bean:write tag to no avail.
>
> So, what am I doing wrong here?  Do I need to do usebean here?  Every
> example I've seen of this never shows that, so I assume not.
> Also, why
> didn't the code manually calling getName() above not work
> either?  Even if I
> needed useBean I would expect that to still work, which leads
> me to believe
> I DON'T need useBean.
>
> Any help is very much appreciated!
>
> _________________________________________________________________
> MSN Toolbar provides one-click access to Hotmail from any Web
> page - FREE
> download! http://toolbar.msn.com/go/onm00200413ave/direct/01/
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>

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


_________________________________________________________________
Stop worrying about overloading your inbox - get MSN Hotmail Extra Storage! http://join.msn.com/?pgmarket=en-us&page=hotmail/es2&ST=1/go/onm00200362ave/direct/01/



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



Reply via email to