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