This and the hint from Dmitry Namiot put me on the right track. The
article at http://www.stardeveloper.com:8080/articles/081601-1.shtml,
provided the needed details. Basically:

1. In my tag I had to set the variable's value, in my case
        pageContext.setAttribute("zapatecUser", user.getUserName());

2. I had to create a class with the extra info. In my case:
public class CheckAuthVar extends TagExtraInfo {

  public VariableInfo[] getVariableInfo(TagData data) {
    return new VariableInfo[] {
      new VariableInfo("zapatecUser", "java.lang.String",
          true, VariableInfo.AT_BEGIN)
    };
  }
}

3. Had to add an extra line to the TLD:
        <teiclass>com.zapatec.tags.CheckAuthVar</teiclass>

Looking at the generated JSP:
        java.lang.String zapatecUser = null;
                        try {
                                        int _jspx_eval_zp_checkAuth_0 = 
_jspx_th_zp_checkAuth_0.doStartTag();
                                        zapatecUser = (java.lang.String)
                                        pageContext.findAttribute("zapatecUser");
                                        ...

We can see how the variable zapatecUser comes to life.

Question:
Why doesn't the tag library use the same mechanism for getters as it
does for setters? Since
<zp:foo bar='<%=aaa%>'>
gets tranlated into setBar(aaa);

seems like
<zp:foo value='bar' variable='<%=aaa%>'>
could get translated into aaa=getBar();

I hate the idea of bringing to life variables with magic names. Is there
a better mechanis in JSPs to do this?

Thanks,

Dror




On Sun, Sep 08, 2002 at 11:28:59AM -0400, Shawn Bayern wrote:
> On Sat, 7 Sep 2002, Dror Matalon wrote:
>
> > How do you do the opposite, how do you fetch a var from a tag into your
> > java code? I'd like to have a tag that fetches the user name and makes
> > it available to the java code. Something like:
> >
> > <%
> > String user = "";
> > %>
> >
> > <zp:authenticate "<%=user%>"=userName/>
> >
> > <%
> > if(userName.equals("joe"))
> >         ...
> > else
> >         ...
> > %>
>
> In JSP 1.2, this is done using either the <variable> element in the TLD or
> a TagExtraInfo class.  See the spec or a book for details.
>
> In newer pages -- those that use JSTL or the upcoming JSP 2.0 standard --
> it will probably be easier to use the expression language, which simply
> requires that you insert variables into page, request, session, or
> application scope.  The use of scripting variables, which are tied
> primarily to scriptlet code, effectively becomes obsolete, or at least
> unfashionable.  (Of course, JSP will always support scripting variables,
> but the goal is for people to wonder, "Why would I ever do it *that* way
> now?")
>
> --
> Shawn Bayern
> "JSTL in Action"   http://www.jstlbook.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

--
Dror Matalon
Zapatec Inc
1700 MLK Way
Berkeley, CA 94709
http://www.zapatec.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

Reply via email to