tomcat-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Nic Holbrook <mo...@xmission.com>
Subject Re: registering variables
Date Thu, 12 Sep 2002 18:24:10 GMT
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:felipes@ritterdosreis.br]
>>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:felipes@ritterdosreis.br]
>>>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
>>>felipes@ritterdosreis.br
>>>Cel.: (51)91287530
>>>Linux Counter #281893
>>>
>>>Faculdade Ritter dos Reis
>>>www.ritterdosreis.br
>>>felipes@ritterdosreis.br
>>>Fone/Fax.: (51)32303328
>>>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>><mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>>>For additional commands, e-mail:
>>><mailto:tomcat-user-help@jakarta.apache.org>
>>>
>>>--
>>>To unsubscribe, e-mail:
>>>      
>>>
>><mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>>    
>>
>>>For additional commands, e-mail:
>>>      
>>>
>><mailto:tomcat-user-help@jakarta.apache.org>
>>    
>>
>>-- 
>>
>>Felipe Schnack
>>Analista de Sistemas
>>felipes@ritterdosreis.br
>>Cel.: (51)91287530
>>Linux Counter #281893
>>
>>Faculdade Ritter dos Reis
>>www.ritterdosreis.br
>>felipes@ritterdosreis.br
>>Fone/Fax.: (51)32303328
>>
>>
>>--
>>To unsubscribe, e-mail:
>><mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail:
>><mailto:tomcat-user-help@jakarta.apache.org>
>>
>>--
>>To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
>>For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>
>>
>>    
>>




--
To unsubscribe, e-mail:   <mailto:tomcat-user-unsubscribe@jakarta.apache.org>
For additional commands, e-mail: <mailto:tomcat-user-help@jakarta.apache.org>


Mime
View raw message