Home | Contact Us | FAQ | Search & Site Map | Link to Us
Sign In | Join | Other 45 Sites in Network
HomeAnnouncementsWhite Papers
Discussion GroupsFirst AidDatabasesJavaBeansGUIJava 3DVirtual MachineCORBASecurityToolsGeneral
Java DirectoryOpen Source ProjectsSample Book ChaptersUser GroupsWeb Resources
Related Topics
Databases.NETMore Topics ...

Java Forum / General / September 2007

Tip: Looking for answers? Try searching our database.

For loop not working from static method

Thread view: 
francan00@yahoo.com - 31 Aug 2007 01:17 GMT
I have a JSP that outputs 10 links and it works great but want to cut
down on the scriptlet lines in my JSP.
Now I want to put the for loop that outputs the 10 links into a source
file and call the class in my JSP using just one line scriptlet.

Here is what my current JSP looks like where it outputs the 10 links:

<jsp:useBean id="pageinfo" class="storm.Pageinfo" scope="session" />
.....
<%
if (pageinfo!=null)
{
     for(int i=0;i < 10;i++)
    {
         out.println("<a href=moveto.jsp?inpage=" + i + ">" + i + "</
a>");
    }
}

%>

Now my attempt to put it in a class outputs only 1 link instead of 10.

Source code for the Java class:

package storm;
import storm.*;

public class PageUtil
{
      public static String theMethod(Pageinfo pageinfo)
      {
          if (pageinfo!=null)
          {
             for(int i=0;i < 10;i++)
             {
                return "<a href=moveto.jsp?inpage=" + i + ">" + i +
"</a>";
             }
          }
      return "";
      }
}

JSP scriptlet calling the static method:

<%= PageUtil.theMethod(pageinfo)  %>

Please advise how I can get this to work.  I am using Tomcat 4.1.27
and dont have JSTL.
Manish Pandit - 31 Aug 2007 06:07 GMT
On Aug 30, 5:17 pm, franca...@yahoo.com wrote:
>        public static String theMethod(Pageinfo pageinfo)
>        {
[quoted text clipped - 8 lines]
>        return "";
>        }

You are returning after 1st iteration, that is why you see only 1
link.

Use a variable to buffer the text and then return it after the loop is
over. Like:

       public static String theMethod(Pageinfo pageinfo)
       {
           StringBuffer buffer = new StringBuffer();
           if (pageinfo!=null)
           {
              for(int i=0;i < 10;i++)
              {
                 buffer.append("<a href=moveto.jsp?inpage=" + i + ">"
+ i +
"</a>");
              }
           }
             return buffer.toString();
       }

-cheers,
Manish
Eric Jablow - 02 Sep 2007 06:41 GMT
> On Aug 30, 5:17 pm, franca...@yahoo.com wrote:
> >        public static String theMethod(Pageinfo pageinfo)
[quoted text clipped - 12 lines]
> You are returning after 1st iteration, that is why you see only 1
> link.

Aside from this Manish's advice, ask yourself whether you're doing the
right thing in the first place.  People try to avoid putting Java
scriptlets into their web pages.  Try to learn the Java Standard Tag
Library; you'll find that you need to write less Java code to do your
tasks.  After all, they're paying you to solve prolems, not to write
code.

In this case, it would be:

<c:forEach var="i" begin="${0}" end="${10}">
   <c:url value="moveto.jsp" var="link">
       <c:param name="inpage" value="${i}"/>
   </c:url>
   <a href='<c:out value="${link}"/>' >
       <c:out value="${i}"/>
   </a>
</cc:forEach>
</c:forEach>
Signature

Respectfully,
Eric Jablow

francan00@yahoo.com - 05 Sep 2007 23:42 GMT
> > On Aug 30, 5:17 pm, franca...@yahoo.com wrote:
> > >        public static String theMethod(Pageinfo pageinfo)
[quoted text clipped - 36 lines]
>
> - Show quoted text -

Thanks, great example.  I cant get JSTL loaded due to restrictions but
working on getting it within a year.


Free Magazines

Get these publications absolutely FREE for up to 12 months. There are no hidden fees and no obligation. Simply choose a title, complete the application form and submit it. Read more ...

Oracle MagazineNetwork ComputingComputer WorldBio-IT WorldeWeekInformation WeekInfosecurity
 
Sign In
Join
My Latest Posts
My Monitored Threads
My Blog
My Photo Gallery
My Profile
My Homepage

Start New Thread
Enable EMail Alerts
Rate this Thread



©2008 Advenet LLC   Privacy Policy - Terms of Use
This website includes both content owned or controlled by Advenet as well as content owned or controlled by third parties.