Sorry I neglected to put a subject line in my
original email.


>From: "p f" <[EMAIL PROTECTED]>
>To: [EMAIL PROTECTED]
>CC: [EMAIL PROTECTED]
>Date: Fri, 22 Jun 2001 16:52:29 -0000
>
>I would like to find out if using overloaded set/get methods within a Tag
>Handler
>is within the JSP 1.1 / JavaBeans 1.01 specifications or not.
>
>
>Problem:
>     When using a tag whose  handler contains overloaded set methods,
>     the JSP 1.1 compiler fails with this error:
>          Server caught unhandled exception from servlet:
>          Unable to find setter method for attribute: value
>
>     The accompanying stack trace is included at the bottom of this file.
>     Platform is NT, App Server is WebSphere 3.5 Fixpack 2 with JSP 1.1
>processor.
>
>Question:
>       Is overloading get/set methods in accordance with specifications?
>       I cannot find any spec (JSP 1.1 spec, Java Beans 1.01 spec)
>       that says you can or cannot have overloaded set methods.   I do have 
>a
>book that mentions
>       overloading set/get methods:
>
>       "...You can also overload your getter and setter methods to accept
>        the appropriate object type, although custom tags or JSP scripting
>elements will be
>        required to access the overloaded methods since
>        the <jsp:setProperty> and <jsp:getProperty> tags work exclusively
>with Strings..."
>
>      This excerpt is from   'Web Development with Java Server Pages, by
>Fields/Kolb, published by Manning
>      Publications and is availiable on the web at
>http://www.manning.com/Fields/Excerpts.html.
>
>      I want to find out if overloading the set method is within the spec 
>or
>not.
>
>Supporting information included below:
>
>     1.  repro.jsp       -  JSP that uses tags to demonstrate the problem
>     2.  setvar.tld      -  tag library descriptor
>     3.  setvar.java     -  tag handler code
>     4.  stack trace     -  text file containing stack trace that 
>accompanies
>the exception error
>                            when repro.jsp is invoked.
>
>
>----------------------------------------------------------------------------
>------------------------------
>1. repro.jsp      invoke via browser:
>http://<host>/<path>/repro.jsp?param=someValue
>
><%@ taglib prefix="sv" uri="/setvar.tld" %>
>
>
>
>----------------------------------------------------------------------------
>------------------------------
>2. setvar.tld
>
><?xml version="1.0" encoding="ISO-8859-1" ?>
><!DOCTYPE taglib
>         PUBLIC "-//Sun Microsystems, Inc.//DTD JSP Tag Library 1.1//EN"
>         "http://java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd";>
><!--  setvar.tld   -->
><taglib>
>       <tlibversion>1.0</tlibversion>
>       <jspversion>1.1</jspversion>
>       <shortname>sv</shortname>
>       <info>tld for setvar test case</info>
>         <tag>
>              <name>setvar</name>
>              <tagclass>com.openmarket.tstcase.setvar</tagclass>
>              <bodycontent>empty</bodycontent>
>              <info> simple tag to repro jsp compile error </info>
>              <attribute>
>                  <name>value</name>
>                  <required>true</required>
>                  <rtexprvalue>true</rtexprvalue>
>              </attribute>
>         </tag>
></taglib>
>
>----------------------------------------------------------------------------
>------------------------------
>3. setvar.java
>
>package com.tstcase;
>
>import java.io.*;
>import javax.servlet.jsp.*;
>import javax.servlet.jsp.tagext.*;
>
>public class setvar extends TagSupport {
>
>private String name;
>private String value;
>
>   public int doStartTag() {
>
>    try {
>      JspWriter out = pageContext.getOut();
>      out.print("<BR>setvar:  value = " + value + "</BR>");
>    }
>      catch(IOException err)
>      {System.out.println("Error in setvar " + err);}
>
>    return(EVAL_BODY_INCLUDE);
>
>   }
>
>   public void setValue(String value) {
>     this.value = value;}
>
>   public String getValue() {
>     return value;}
>
>// to prevent the error when repro.jsp is invoked, comment out the next 2
>lines
>   public void setValue(int n) {
>     value = Integer.toString(n);}
>
>
>}
>----------------------------------------------------------------------------
>------------------------------
>
>4. stack trace
>
>Stack Trace:
>
>[01.06.22 11:03:23:814 EDT] b354cfab WebGroup      X [Servlet Error]-[{0}]:
>{1}: {2}
>                                  "WCS JSP Compiler"
>                                  "Server caught unhandled exception from
>servlet [WCS JSP Compiler]:
>                                  Unable to find setter method for 
>attribute:
>value"
>
>com.ibm.servlet.engine.webapp.UncaughtServletException: Server caught
>unhandled exception from servlet [WCS JSP Compiler]: Unable to find setter
>method for attribute: value
>at javax.servlet.ServletException.<init>(ServletException.java:132)
>at
>com.ibm.websphere.servlet.error.ServletErrorReport.<init>(ServletErrorReport
>.java:43)
>at
>com.ibm.servlet.engine.webapp.WebAppErrorReport.<init>(WebAppErrorReport.jav
>a:32)
>at
>com.ibm.servlet.engine.webapp.UncaughtServletException.<init>(UncaughtServle
>tException.java:11)
>at
>com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.handleWebAppDispatch(W
>ebAppRequestDispatcher.java:355)
>at
>com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.dispatch(WebAppRequest
>Dispatcher.java:175)
>at
>com.ibm.servlet.engine.webapp.WebAppRequestDispatcher.forward(WebAppRequestD
>ispatcher.java:93)
>at
>com.ibm.servlet.engine.srt.WebAppInvoker.handleInvocationHook(WebAppInvoker.
>java:77)
>at
>com.ibm.servlet.engine.invocation.CachedInvocation.handleInvocation(CachedIn
>vocation.java:67)
>at
>com.ibm.servlet.engine.invocation.CacheableInvocationContext.invoke(Cacheabl
>eInvocationContext.java:106)
>at
>com.ibm.servlet.engine.srp.ServletRequestProcessor.dispatchByURI(ServletRequ
>estProcessor.java:160)
>at
>com.ibm.servlet.engine.oselistener.OSEListenerDispatcher.service(OSEListener
>.java:300)
>at
>com.ibm.servlet.engine.oselistener.SQEventListenerImp$ServiceRunnable.run(SQ
>EventListenerImp.java:230)
>at
>com.ibm.servlet.engine.oselistener.SQEventListenerImp.notifySQEvent(SQEventL
>istenerImp.java:104)
>at
>com.ibm.servlet.engine.oselistener.serverqueue.SQEventSource.notifyEvent(SQE
>ventSource.java:212)
>at
>com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRu
>nnable.notifyService(SQWrapperEventSource.java:347)
>at
>com.ibm.servlet.engine.oselistener.serverqueue.SQWrapperEventSource$SelectRu
>nnable.run(SQWrapperEventSource.java:216)
>at
>com.ibm.servlet.engine.oselistener.outofproc.OutOfProcThread$CtlRunnable.run
>(OutOfProcThread.java:248)
>at java.lang.Thread.run(Thread.java:481)
>
>
>
>
>

_________________________________________________________________
Get your FREE download of MSN Explorer at http://explorer.msn.com

Reply via email to