Yep, sorry about that... I had it in my drafts folder because I got called
away in the middle of it, and I didn't check all the replies to the
current thread before sending it so I didn't see your link until
afterwards.  My bad :)

-- 
Frank W. Zammetti
Founder and Chief Software Architect
Omnytex Technologies
http://www.omnytex.com

On Mon, April 18, 2005 10:41 am, Hubert Rabago said:
> Frank,
>
> You must've started typing this response a while ago.  I already sent
> a message on this thread linking to the dev email with your proposal.
>
> Hubert
>
> On 4/18/05, Frank W. Zammetti <[EMAIL PROTECTED]> wrote:
>> On 4/6 I posted the following message to the Struts dev list... I can't
>> seem to find the thread in the list archives, if anyone else can I would
>> appreciate very much you posting the link to it...
>>
>> This was discussing my proposal for integrating AJAX functionality into
>> the existing Struts taglibs.  There were some legitimate dissenting
>> points
>> raised about this, and ultimately the idea was shot down.  However, I
>> still feel the idea has significant merit.
>>
>> The proposal wasn't posted to the user list, and maybe I should have
>> done
>> so... if there is support for this in the user community, I would be
>> willing to persue it further and provide it as part of the SF Struts
>> project.
>>
>> P.S., I've added some notes here for some things that may not be as
>> clear
>> as I would have liked, especially if you aren't terribly familiar with
>> the
>> Struts code base, so if you see minor difference between this and what
>> is
>> in the archives, that's all it is...
>>
>> --------------------
>>
>> Subject: RFC: Struts HTML Ajax-Aware Tags
>>
>> Afternoon all,
>>
>> Please reference the code at:
>>
>> http://www.omnytex.com/ajaxtags.zip
>>
>> This is a complete webapp demonstrating the proposal (it isn't complete,
>> it is just to get the ideas across).
>>
>> I wanted to put something out there in front of you all and get some
>> feedback on it before I go that extra mile and finish it out.
>>
>> This came out of some ideas I tossed at Ted a few days ago.  The basic
>> idea is to take the existing Struts HTML taglib and make the tags
>> Ajax-aware.
>>
>> In a nuthsell, take a simple button tag...
>>
>> <html:button property="button1" value="Click to do Ajax!" />
>>
>> ...now, add a new attribute to it, ajaxRef:
>>
>> <html:button property="button1" value="Click to do Ajax!"
>> ajaxRef="button1" />
>>
>> When the tag is rendered, each possible type of event handler (in the
>> BaseTagHandler class) looks something like this now:
>>
>> if (getOnclick() != null) {
>>     handlers.append(" onclick=\"");
>>     handlers.append(getOnclick());
>>     handlers.append("\"");
>> }
>> else {
>>   prepareAjax("onclick", handlers);
>> }
>>
>> prepareAjax() does a lookup to a new XML configuration file (well,
>> in-memory objects representing the XML of course!) like so:
>>
>> <AjaxConfig>
>>   <ajaxElement>
>>     <id>button1</id>
>>     <event>
>>       <type>onClick</type>
>>       <submitType>queryString</submitType>
>>       <submitItems>buttonValue=button1,textValue=text1</submitItems>
>>       <submitTarget>http://www.omnytex.com</submitTarget>
>>       <returnAction>stdInnerHTML</returnAction>
>>       <returnTargets>resultLayer</returnTargets>
>>     </event>
>>   </ajaxElement>
>> </AjaxConfig>
>>
>> If an <ajaxElement> with an <id> matching the ajaxRef attribute is
>> found,
>> and if an <event> with a <type> matching the type being added to the tag
>> is found, then the prepareAjax() method does its thing (note that
>> developer-defined event handler functions will take precedent, so no
>> existing code would be broken by this).  And what is "its thing" you
>> ask?
>>
>> Basically it will add an inline event handler to the tag, just like
>> always, that is capable of making an Ajax request (using the
>> XMLHttpRequest component).  A quick description of the XML elements
>> pertaining to <event> should bring this in to focus:
>>
>> type .. is of course the type of event handler.  It can be any of the
>> types that the BaseHandlerTag handles.
>>
>> submitType .. is the type of submission that will be made.  Two types
>> are
>> (will be) supported: queryString and XML.
>>
>> submitItems .. is a comma-separated list of form elements and the names
>> they should be given.  For instance, in the example above we would get a
>> query string in the form ?buttonValue=<1>&textValue=<2> where <1> is the
>> value of the button on the page and <2> is the value of the textbox on
>> the
>> page.
>>
>> submitTarget .. is the URL the request is submitted to.  This can be a
>> relative path or a full URL (although full URLs will of course incur the
>> cross-site scripting restrictions)
>>
>> returnAction .. is what will happen when the request returns.  There
>> will
>> be a number of built-in actions, all prefixed with "std' (let's get all
>> the disease jokes out of the way now!).  You can also name a page-level
>> Javascript function here to do other things.
>>
>> returnTargets .. is a comma-separated list of elements on the page that
>> will be affected by the action.  This will generally be required for the
>> standard actions, and is up to the developer if they want it if writing
>> their own function.
>>
>> The code you hopefully downloaded is a sample webapp, very simple.
>> Click
>> the button to retrieve the Struts web site and dump it in a span.  Note
>> that if you are in an environment that requires a proxy for network
>> access, you will need to set the httpProxy and httpPort elements in
>> web.xml appropriately.  It is by default set up assuming no proxy is
>> required.
>>
>> The example has a number of quick-and-dirty type hacks just to
>> demonstrate... for one, the XML config file is NOT read in, instead the
>> objects are just populated manually in AjaxInit (which is a Struts
>> plug-in
>> and is required to make the tags Ajax-aware).  Second, the query string
>> is
>> currently not actually built, it's just hard-coded.  Third, only the
>> queryString submitType is recognized.  Fourth, only the stdInnerHTML
>> returnAction is recognized (as the name implies, this just sets the
>> innerHTML of any elements named in returnTargets).  And lastly, there is
>> very little commenting or proper error handling in spots.
>>
>> Like I said, a very simple example, but I think it gets the point
>> across.
>>
>> Also included is the change to BaseTagHandler, the only altered class
>> from
>> the taglib (no Struts core changes, as one would expect).  As I
>> mentioned,
>> there is a plug-in required for this, and there are a total of six new
>> classes, all dealing with storing the configuration information.
>>
>> So, the question is, does anyone see this as something interesting?  Is
>> anyone interested in seeing this actually finished up?  If so I can do
>> that, probably by the weekend if things go well, and I suppose open a
>> ticket for it at that point.
>>
>> Questions?  Comments?  Whatever?  Thanks all!
>>
>> --
>> Frank W. Zammetti
>> Founder and Chief Software Architect
>> Omnytex Technologies
>> http://www.omnytex.com
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: [EMAIL PROTECTED]
>> For additional commands, e-mail: [EMAIL PROTECTED]
>>
>>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


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

Reply via email to