Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Note

The ajax theme is deprecated!

The ajax theme extends the xhtml theme with AJAX features. The theme uses two the popular DOJO AJAX/JavaScript libraries: Dojo and DWRtoolkit. AJAX features include:

  • AJAX Client Side Validation
  • Remote form submission support (works with the submit tag as well)
  • An advanced div template that provides dynamic reloading of partial HTML
  • An advanced a template that provides the ability to load and evaluate JavaScript remotely
  • An AJAX-only tabbedPanel implementation
  • A rich pub-sub event model
  • Interactive autocomplete tag

(tick) See also: Ajax tags

Browser Compatibility

AJAX (as a technology) uses a browser-side scripting component that varies between browers (and sometimes versions). To hide those differences from the developer, we utilize the dojo toolkit (http://www.dojotoolkit.org). Several browsers are supported by dojo, and any UI's created with the ajax theme should act the same way for supported browsers. The supported browsers are:

  • IE 5.5+
  • FF 1.0+
  • Latest Safari (on up-to-date OS versions)
  • Latest Opera
  • Latest Konqueror

Extending the

...

AJAX Theme

The wrapping technique btilized utilized by the ajax theme is much like xhtml theme, but the controlheader.ftl is a wee bit different.

Code Block

<#if parameters.label?if_exists != "">
	<#include "/${parameters.templateDir}/xhtml/controlheader.ftl" />
</#if>
<#if parameters.form?exists && parameters.form.validate?default(false) == true>
	<#-- can't mutate the data model in freemarker -->
    <#if parameters.onblur?exists>
        ${tag.addParameter('onblur', "validate(this);${parameters.onblur}")}
    <#else>
        ${tag.addParameter('onblur', "validate(this);")}
    </#if>
</#if>
Wiki Markup
{snippet:id=all|lang=xml|url=action2/core/src/main/resources/template/ajax/controlheader.ftl}

The header provides for AJAX Client Side Validation by checking if the validate attribute is set to true. If it is, a validation request is made on each onblur event for a HTML Struts Tags. Some people don't like the onblur behavior; they would rather a more advanced timer (say, 200ms) be kicked off after every keystroke. You can override this template and provide that type of behavior if you would like.

...