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]>