New version of JSP Controls Tag Library  (the Library) is much closer
to future official public version 1.0. Since this release no major
changes in API is expected. Heck, I am using it for a real website :)
so the code has to be stable enough. No more big changes.

Documentation on site is in process of being updated. The biggest
change - Accept tag is removed. Check out the samples. Login component
may seem very simple, but it showcases most features of the Library
and of this release.

Now some noticeable news in detail.

Accept tag is removed
---------------------
Previous versions of the Library used an idea that events must conform
to certain format, that is, having specific suffix or prefix. Paul
Benedict moved event-dispatching on a new level with
EventActionDispatcher that does not require suffixes or prefixes. I
liked it so much that I updated the Library along these lines.
Previously Accept tag checked whether request contained an event (any
event). This is not needed anymore. Instead, handler tags just grab
whatever they feel appropriate as an event:

<jspc:handler event="logoutEvent">
  <% session.removeAttribute("USER"); %>
</jspc:handler>

Struts Actions also can be used as controller using catch-all Handler
tag with no "event" attribute:

<jspc:handler>
    <jsp:include page="/logincomponent.do" />
</jspc:handler>

Ajax request sequencing now works
---------------------------------

Thanks to Laurie and Frank I implemented ordered Ajax requests. What
for? Say, your composite page contains the following components: Main
Menu, Change Language, Login/Logout and maybe something else. When a
user logs in or out, user status is changed. Main Menu depends on user
status, it shows different menu for a guest and for registered user.
Change Language component does not depend on user status. So, the
choices are:

* After logging user in or out reload the whole page, then Main Menu
will be reloaded automatically. This worked in previous versions.
* Another option is to declare Main Menu as dependant of Login/Logout
component. This way, after Login/Logout component is activated on and
updated, another XHR is fired to redraw Main Menu. Voila!

 <jspc:attach source="loginComponent.jsp"
dependants="['loginStatusComponent.jsp']" />

Check Login sample for details.

No need to use coarse-grained Form and Link tags anymore
--------------------------------------------------------

New Prepare tag exports important URLs and pre-built Javascript
expressions to page context. These variables can be used with JSTL
inside plain HTML to build forms and links, and to insert proper
reload expressions. The exported variables are:

  jspcParentAddress
  jspcComponentAddress
  jspcFormOnsubmit
  jspcInputOnclick

The JSP code looks like this:

<form action="${jspcComponentAddress}" onsubmit="${jspcFormOnsubmit}">
  <label for="username">Username:</label>
  <input type="text" name="username" value="${username}" /><br/>

  <label for="password">Password:</label>
  <input type="text" name="password" value="" /><br/>

  <input type="submit" name="loginEvent" value="Log In"
onclick="${jspcInputOnclick}"/><br/>
</form>

  See their usage in Login/Logout example. This example indeed has it all.

Usage of JSTL conditional expressions instead of Render tags
----------------------------------

<c:if test='${empty USER}'>
  <jsp:include page="loginComponent-viewLogin.jsp" />
</c:if>

<c:if test='${not empty USER}'>
  <jsp:include page="loginComponent-viewLogout.jsp" />
</c:if>

Again, see Login sample for details.

Compatibility
-------------

Some variables are removed or renamed, some tags are renamed too,
so... But things will get better from now on, the API is stabilized
now.

Wendy, Tag Component may see some improvements, but 0.5-compliant code
won't break. So, feel free to try :-)

Michael.

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to