cbarnes wrote: > I am writing a number of custom tags, all of which return a list of string > values to the JSP by using a TEI class. > I want to write a generic TEI class that can be used by all the custom tags. > This TEI class needs to be supplied with a list of attribute names that it > has to create VariableInfo objects for. The tag classes have this list of > attribute names as a tag attribute, so I thought that I could get this list > from the TagData object in the TEI class by doing something like: > Vector listOfAttributes = (Vector)data.getAttribute("attributeNames"); > > However, this doesn't appear to work. I get a ClassCastException trying to > cast the object to a Vector.
The Object returned by getAttribute() is either a String or the special Object instance named REQUEST_TIME_VALUE, to tell the TEI that the attribute is defined by a request-time attribute expression and can not be evaluated at translation time. So if you specify a list of names as a tag attribute, you have to use getAttributeString(), or cast the returned value from getAttribute() to a String, and then parse the list yourself. Something like this: String varNames = data.getAttributeString("varNames"); StringTokenizer st = new StringTokenizer(varNames, ","); > Can anyone tell me if its possible to get this to work? > > Is there a better way of supplying a list of attribute names to the TEI > class. > > Am I going to have to give in and write a different TEI class for each of > the custom tags? If you use a web container that supports JSP 1.2 (most of the recent ones do), you can avoid writing TEI classes altogether and declare the variables to create in the TLD instead: <tag> <name>myTag</name> <tag-class>com.mycompany.MyTag</tag-class> <variable> <name-from-attribute>id</name-from-attribute> <variable-class>java.lang.String</variable-class> <declare>true</declare> <scope>AT_END</scope> </variable> ... </tag> JSP 1.2 has many other nice features, for instance a new IterationTag interface for tag handlers that loop over their bodies but do not need to read the body content (like you asked about in another mail). Here's a couple of articles that describes the new features: <http://www.onjava.com/pub/a/onjava/2001/10/10/jsp.html> <http://www.onjava.com/pub/a/onjava/2001/11/07/jsp12.html> Hans -- Hans Bergsten [EMAIL PROTECTED] Gefion Software http://www.gefionsoftware.com JavaServer Pages http://TheJSPBook.com =========================================================================== To unsubscribe: mailto [EMAIL PROTECTED] with body: "signoff JSP-INTEREST". For digest: mailto [EMAIL PROTECTED] with body: "set JSP-INTEREST DIGEST". Some relevant FAQs on JSP/Servlets can be found at: http://archives.java.sun.com/jsp-interest.html http://java.sun.com/products/jsp/faq.html http://www.esperanto.org.nz/jsp/jspfaq.jsp http://www.jguru.com/faq/index.jsp http://www.jspinsider.com