Yes, this can be done.
Tag example
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
import java.io.*;
public class Dummy extends BodyTagSupport
{
protected String name;
protected boolean result;
public Dummy()
{
initValues();
}
public void release()
{
initValues();
}
private void initValues()
{
name = "";
result = false;
}
public void setResult(boolean result)
{
this.result = result;
}
public boolean getResult()
{
return result;
}
public void setName(String p1)
{
name = p1;
}
public String getName()
{
return name;
}
public int doStartTag() throws JspTagException
{
pageContext.setAttribute(name, new Boolean(result));
return(BodyTag.EVAL_BODY_BUFFERED);
}
}
Example Tag Extra Info
import javax.servlet.jsp.*;
import javax.servlet.jsp.tagext.*;
public class DummyExtraInfo extends TagExtraInfo
{
public static final String ATTRIB_NAME = "name";
public static final String ATTRIB_TYPE = "java.lang.Boolean";
public VariableInfo[] getVariableInfo(TagData data)
{
if(data.getAttributeString(ATTRIB_NAME) != null)
{
VariableInfo info = new
VariableInfo(data.getAttributeString(ATTRIB_NAME), ATTRIB_TYPE, true,
VariableInfo.AT_BEGIN);
return new VariableInfo[] { info };
}
else
{
return new VariableInfo[] {};
}
}
}
Hope this is what you were looking for.
Later
Nic
Felipe Schnack wrote:
> Well, actually I'm talking about the TagExtraInfo. With it, you can
>register variables in the tag scope... I would like to dinamically
>create these variables.
> I will not enter in details of why I want to do that, but it's
>relative to data access...
> It's possible or not? Maybe I can make a TagExtraInfo that grabs data
>from it related tag? That's possible? I mean, you have an
>"DoSomethingTag" and a "DoSomethingExtraInfoTag". It's possible to
>"DoSomethingExtraInfoTag" access ""DoSomethingTag" data?
>
>On Thu, 2002-09-12 at 12:36, Andreas Mohrig wrote:
>
>
>>I don't know Struts, but if it is possible to register variables in other
>>scopes with the help of Struts it gives me the creeps/makes me shudder and
>>would not shine a good light on Java as a programming language. Why should
>>you want to register a variable in the first place? Java is good for
>>encapsulation and information hiding. Data transport can be managed via
>>return values of method calls or if there is absolutely no other way over
>>global contexts (which is frightful by itself). What you are talking about
>>would undermine the foundations of the Java programming language (in my
>>humble opinion as a programmer). But I'm willing to learn and to broaden my
>>perspective, so if you have a case where it is absolutely necessary (or even
>>practically/elegant or otherwise useful) to do what you want to do, please
>>let me know about it.
>>
>>Andreas Mohrig
>>
>>-----Original Message-----
>>From: Felipe Schnack [mailto:[EMAIL PROTECTED]]
>>Sent: Thursday, September 12, 2002 5:16 PM
>>To: Tomcat Users List
>>Subject: RE: registering variables
>>
>>
>> Ok, but this is an attribute, not an variable really. There isn't a
>>way I can register a variable? Like in Strut's TE tags?
>>
>>On Thu, 2002-09-12 at 11:57, Andreas Mohrig wrote:
>>
>>
>>>You could put it in the pageContext (or even in the session or application
>>>context). That will require some syntactic clutter (first
>>> pageContext.setAttribute("variableName",objectVariable);
>>> then (in the jsp page)
>>> ObjectType myVariable =
>>>(ObjectType)pageContext.getAttribute("variableName",objectVariable);
>>>)
>>>and opens the possibilitie of errors that are hard to debug (what if there
>>>is already an attribute with that name?) but is much safer than directly
>>>creating variables in other scopes. It is one of javas merits that this is
>>>not possible (at least not to my knowledge).
>>>
>>>greetings
>>>
>>>Andreas Mohrig
>>>
>>>-----Original Message-----
>>>From: Felipe Schnack [mailto:[EMAIL PROTECTED]]
>>>Sent: Thursday, September 12, 2002 4:42 PM
>>>To: Tomcat Users List
>>>Subject: registering variables
>>>
>>>
>>> How can I create an variable within an taglib? I would like to be able
>>>to create an variable accesible to my jsp page.
>>>
>>>--
>>>
>>>Felipe Schnack
>>>Analista de Sistemas
>>>[EMAIL PROTECTED]
>>>Cel.: (51)91287530
>>>Linux Counter #281893
>>>
>>>Faculdade Ritter dos Reis
>>>www.ritterdosreis.br
>>>[EMAIL PROTECTED]
>>>Fone/Fax.: (51)32303328
>>>
>>>
>>>--
>>>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]>
>>
>>
>>--
>>
>>Felipe Schnack
>>Analista de Sistemas
>>[EMAIL PROTECTED]
>>Cel.: (51)91287530
>>Linux Counter #281893
>>
>>Faculdade Ritter dos Reis
>>www.ritterdosreis.br
>>[EMAIL PROTECTED]
>>Fone/Fax.: (51)32303328
>>
>>
>>--
>>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]>