I use Struts for MVC web applications.

http://jakarta.apache.org/struts

-Chris

> -----Original Message-----
> From: Alex Muc [mailto:[EMAIL PROTECTED]]
> Sent: Saturday, October 12, 2002 11:09 AM
> To: Tomcat Users List
> Subject: Re: Defining methods in JSP pages
>
>
> Yeah, that thought hit me last night as well (just after I sent the
> message of course:).  I was thinking more about the possibility of doing
> the call from some other JSP page as well.
>
> Do you use these features?  Do you have a prefered place for display
> related functions (model/view/controller/other)?
>
> Alex.
>
> Chris Means wrote:
>
> >Alex,
> >
> >Are you aware that you could simply call the method that you defined
> >directly in the JSP body?
> >
> ><%!
> >    public String getTitle(HttpServletRequest request) {
> >        String id = request.getParameter("id");
> >        return "id: " + id;
> >    }
> >%>
> >
> ><%
> >  String title = getTitle (request) ;
> >
> >  out.write (title) ;
> >%>
> >
> >-Chris
> >
> >
> >
> >>-----Original Message-----
> >>From: Alex Muc [mailto:[EMAIL PROTECTED]]
> >>Sent: Saturday, October 12, 2002 12:55 AM
> >>To: [EMAIL PROTECTED]
> >>Subject: Defining methods in JSP pages
> >>
> >>
> >>Hi,
> >>
> >>I've been using JSPs for quite a while now and have been trying to find
> >>better ways to do various things.  One of the features of JSPs that I
> >>stumbled on a while ago was the ability to define methods in JSPs and to
> >>be able to call those methods from within the page using Java Reflection
> >>mechanisms.  This works relatively well (see example below), except for
> >>the baggage of having to do the reflection work.  Alas, that is the
> >>price we pay for a strongly typed language.
> >>
> >>What I'm wondering is why more people don't use the declaration syntax
> >>as a way to define methods in pages and use those methods to abstract
> >>out some of the functionality they need?  My answer would be that it is
> >>generally frowned upon (by the MVC crowd) to put logic into the JSP page
> >>and to a certain extent I agree.  But, there are times where the logic
> >>code is only used to modify the display and in those cases it seems to
> >>me like putting that logic into a method within the JSP makes sense.
> >> For example, when building the title string of the page you often have
> >>to look up or build some sort of descriptive string from the various IDs
> >>of the objects that are part of the request/session to the page.  It
> >>seems to me that doing this sort of operation is the kind of thing which
> >>should be within the JSP page and using methods within the JSP page seem
> >>to make even more sense as opposed to scriptlets.  The alternatives are:
> >>1) Put the "getPageTitle" method into the Model object.  If the model is
> >>supposed to capture the data of the object then it doesn't seem to me
> >>like it should be cluttered with methods relevant to displaying
> >>the object.
> >>2) Put the "getPageTitle" method into the Controller object.  Again, if
> >>the controller is the driver of the business logic of the object(s) then
> >>it too doesn't seem like the right place for methods relevant to
> >>displaying the object.
> >>
> >>It seems like using methods in JSP pages is a good idea for certain
> >>things.  It also has it's downsides, the main one that I see is that
> >>there is no inheritance among JSP pages.  I wonder how hard this would
> >>be to add?
> >>
> >>Does any one have any comments about why defining methods in JSP pages
> >>is a good or bad idea?  I would really appreciate hearing from you.
> >>
> >>Thanks for you time.
> >>Alex.
> >>
> >>
> >>***************
> >>Example method in a JSP page:
> >>***************
> >>
> >>
> >>
> >>
> >><%@ page language="java" import="java.lang.reflect.*" %>
> >><%!
> >>    public String getTitle(HttpServletRequest request) {
> >>        String id = request.getParameter("id");
> >>        return "id: " + id;
> >>    }
> >>%>
> >><%  Class c = this.getClass();
> >>
> >>        // The types for the method call
> >>        Class [] pTypes = new Class [1];
> >>        Class hsr =
> >>Class.forName("javax.servlet.http.HttpServletRequest");
> >>        pTypes[0] = hsr;
> >>
> >>        // Get the method
> >>        Method m = c.getMethod("getTitle", pTypes);
> >>
> >>        // Build the list of parameters to the method
> >>        Object [] params = new Object [1];
> >>        params[0] = request;
> >>
> >>        // Invoke the method and get the result
> >>        String result = (String) m.invoke(this, params);
> >>%>
> >>Method Result: <%= result %>
> >>
> >>
> >>
> >>
> >>--
> >>To unsubscribe, e-mail:
> >>
> >>
> ><mailto:[EMAIL PROTECTED]>
> >For additional commands, e-mail:
> ><mailto:[EMAIL PROTECTED]>
> >
> >
> >
> >--
> >To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
> >
> >
> >
> >
>
>
> --
> To unsubscribe, e-mail:
> <mailto:[EMAIL PROTECTED]>
> For additional commands, e-mail:
> <mailto:[EMAIL PROTECTED]>
>



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

Reply via email to