A mechanism for 

Scott Stirling wrote:
> 
> All right, now I can spill the beans.  JSTs were something Tom Reilly, our
> main JSP container engineer, conceived, prototyped and proposed to the JSP
> spec leads at the end of the JSP 1.2 (I think -- I'm not positive about the
> original timing) spec. cycle.  We ended up pulling it back because it didn't
> look like there'd be time to have it fully considered by the expert group
> for JSP 1.2.  Months passed and the idea fermented a bit, and Tom twiddled
> around with it and got a few people internally interested in it.  I don't
> know if it would make more sense to develop JSTs as a separate JSR or under
> the rubric of the next JSP JSR.
> 
> Anyway, it's no secret that Allaire has been porting the whole CFML language
> to run on a Java runtime engine (JRun).  That's really where the JST idea
> came from, though if you look at the implementation (as Mike has), it's
> solidly based on JSP and JSP-like syntax.  Basically, as Mike alluded in his
> original email on this thread, CFML has long allowed you to extend the
> language with new tags in two ways:
> 
> 1.  By implementing exposed C++/Java APIs that allow developers to write
> their own tags in "real" programming languages.
> 
> 2. By allowing users to reuse CFML templates as tags themselves.
> 
> The second idea is what JSTs are.  The main difference being that JSTs are
> translated and compiled into standard JSP 1.1 tag handlers dynamically,
> whereas CFML is proprietary.
> 
> So anyway, when Mike sent this email in December, he hit the nail right on
> the head.  I couldn't say anything about what we were doing with it (I
> didn't reply at all),  and it couldn't be released at the time because we
> were all in the middle of dealing with the J2EE CTS (compatibility test
> suite) so we could announce certification with the next release.  JSTs (as
> they are now) were pretty close to being done in October, but the priority
> became J2EE certification over new features.  Toward the end of 3.1 dev
> cycle, we decided to drop them in.
> 
> While I'm on the topic of 3.1, Tom fixed a couple bugs related to JSPs and
> added a couple features.
> 
> 1. Using "true" instead of "yes" in TLDs used to cause JRun's TLD parser to
> throw an Exception.  That's fixed.
> 
> 2. JRun used to treat all custom tag attribute values as Strings, and would
> not properly convert values to the appropriate type of the property in the
> tag handler.  That's fixed.
> 
> 3. A tag that extends BodyTag can now handle nexted <jsp:include
> page="foo.xxx"/>
> 
> 4. Tag handler caching/recycling has been implemented.  This is a
> performance enhancement that is most noticable when you have lots of custom
> tags on a page.
> 
> One notable known problem in beta 1 is that JRun doesn't handle taglib URIs
> that depend on absolute URLs.  So using this technique to specify a TLD will
> cause a translation exception.  This unfortunately affects Struts and
> Jakarta Taglibs, which all depend on this way of resolving TLDs out of the
> box (the work-around is fairly easy (but a pain in the ass)).  Hopefully
> this will be fixed in beta 2.
> 
> Best regards,
> 
> Scott Stirling
> Allaire
> 
> 
> -----Original Message-----
> From: Mike Cannon-Brookes
> To: [EMAIL PROTECTED]
> Cc: Scott Stirling
> Sent: 3/10/01 2:19 AM
> Subject: RE: My revolutionary idea... JSPT!
> 
> Just thought I'd mention that it looks like Allaire has picked up my
> idea in
> their latest release of JRun. Cheeky bastards ;)
> 
> Their newest release of JRun (3.1 beta 1) includes a feature called JST
> which are JSP tags built and autocompiled from JSP files, instead of
> from
> java classes following the tag API. I haven't had a chance to
> investigate it
> much (installing it in the background now), but I know Scott is on this
> list.
> 
> I'll report back to the group when I've tried it.
> 
> Care to fill us in on how it is going to work Scott? Will we see a JSR
> on
> this in the near future?
> 
> -mike
> 
> > -----Original Message-----
> > From: Mike Cannon-Brookes [mailto:[EMAIL PROTECTED]]
> > Sent: Saturday, December 23, 2000 12:15 AM
> > To: [EMAIL PROTECTED]
> > Subject: My revolutionary idea... JSPT!
> >
> >
> > > > Much of the other ugliness about JSP is the tremendous amount
> > > of references
> > > > and configuration files from the taglib directive, to the
> > taglib.tld, to
> > > > web.xml.  And there just aren't enough taglibs and tools yet,
> > > so everything
> > > > from writing the tag handlers to packaging them, to writing the
> > > JSPs that
> > > > use them are being done by the same group of programmers.  The
> > > division of
> > > > roles and responsibilities is well-addressed in the J2EE specs,
> > > but not too
> > > > well implemented in practice a lot of the time.
> > >
> > > You're absolutely correct. I'm trying to get my current shop to
> > recognize
> > > the differences in roles now myself, because I'm tired of being
> > developer
> > > and deployer all at the same time, which makes determining what
> > tasks need
> > > to get done by whom and when rather confusing.
> >
> > The rest of this thread is interesting, but this intrigued me most -
> it
> > harks back to a discussion I had with some Servlet 2.3 spec guys a
> while
> > back. Here's a braindump of that discussion:
> >
> > Follow my logic for a second, for this is not all the ravings of
> > a crazy man
> > ;)
> >
> > 1) Servlets were invented, they were fantastic for building web
> > apps... but
> > it's crap coding HTML in out.println() statements.
> >
> > 2) Smart programmers realised that _often_ the majority of the code
> was
> > HTML, therefore the paradigm was wrong.
> >
> > 3) They invented JSP, which is HTML with a little Java mixed in
> > for spice -
> > which is effectively compiled into a servlet.
> >
> > 4) Then they thought about it more, JSP was good... but it lacked
> > easy ways
> > to add code snippets - thus they created... tags! Tags are
> > basically an easy
> > way to wrap code that you use frequently behind an easy to use
> interface.
> > These programmers were very happy with themselves.
> >
> > IMHO they stopped short of web developer nirvana.
> >
> > How many of you write tags to produce dynamic HTML? Answer - none.
> >
> > Because as Scott said, it's very cumbersome to write tags - and
> > if we start
> > writing HTML in a Java class (tag) we're back to 1.
> >
> > Why not have a special form of JSP... that is compiled into a tag
> > automatically!
> >
> > I'll say again:
> > JSP compiles to Servlets
> > JSPT (or a real name) compiles to JSP Tags.
> >
> > Why the hell would I want to do that you ask?
> >
> > Simple, the current include methods do not allow you to pass
> parameters
> > which are not strings.
> >
> > Imagine I want the following simple tag to output a box in HTML:
> > <html:drawbox forecolor="ffffff" backcolor="333333" border="2">
> >       my content
> > </html:drawbox>
> >
> > This is a real bitch at the moment. I have to write a class,
> > which has HTML
> > coded in there... if I want to change the HTML I have to recompile the
> tag
> > etc.
> >
> > Now imagine the following JSPT page.
> >
> > <%-- start drawbox.jspt --%>
> > <table cellpadding=<%= tag.getParameter("border") %>
> > cellspacing=0 border=0
> > background="<%= tag.getParameter("forecolor") %>"><tr><td>
> > <table background="<%= tag.getParameter("backcolor") %>"><tr><td>
> >       <%= tag.getBody() %>
> > </td></tr></table>
> > </td></tr></table>
> > <%-- end drawbox.jspt --%>
> >
> > Any HTML nut will tell you that the above draws a box, of variable
> width
> > using two nested tables. And any JSP nut can probably see what the new
> > implicit "tag" variable scope does (pass data and parameters from the
> tag
> > called to the page).
> >
> > If you wanted to change the HTML produced, just edit the JSPT file and
> the
> > server would recompile it into a tag automatically (just like it
> compiles
> > JSPs automatically on change).
> >
> > In summary of my crazy proposal:
> >
> > Advantages:
> > - makes writing tags which produce any HTML much much faster,
> > fantastic RAD
> > - you can let web developers write tags (this is a BIG problem at the
> > moment, writing a tag is too complex for the guy JSP is pitched at)
> > - changing tags is a quick process, recompilation is automatic
> > - it's a very minor change to the spec (fully fleshed out of course)
> >
> > Disadvantages:
> > - doesn't work well for non HTML producing tags (fair enough,
> > servlets still
> > have their purpose too!)
> > - JSP bean-requestpassing-non-scriptlet zealots will be up in arms
> (just
> > cause it doesn't fit their paradigm of how a web app should be
> written)
> > - Allaire will be angry you stole their easy CFM tag making ideas
> (writing
> > tags in ColdFusion is the best part about it - it's beautifully easy)
> >
> > There ya go... spec writers, flamers, the above zealots, tag lovers -
> any
> > comments or feedback or flames most appreciated as always.
> >
> > -mike
> >
> > Technology Director - Asia Pacific
> > [EMAIL PROTECTED] - internet.com Corp
> >

Reply via email to