JSControlsTags

Overview

Javascript is the scripting used to manage behaviour on client side in Web Applications. For a long time, Javascript programming was the nightmare for developers. Depending on the browser (Firefox, Opera, Safari, IE,...), javascript code doesn't have the same behaviour. The rise of AJAX applications, forced developers to build javascript components with more rigor. Prototype is a good example. With this javascript library, we can think component, which are reusable. There is a great deal of AJAX components, based on this javascript library. Sometimes, you want to use controls on client side and sometimes on server side (AJAX).

JSControlsTags is a taglib that easily manages javascript controls either on client side (without AJAX) or on server side (with AJAX) in your JSP. It is based on Prototype and Scriptaculous. It looks like AjaxTags, but it can manage javascript controls :

  • on client side.
  • on server side with JSON (Javascript Object Notation) which is the format used to pass messages between server and browser.

Tags Available

TagDescription
AutocompleteRetrieves a list of values that matches the string entered in a text form field as the user types. This control works ONLY on client side.
Slider/AjaxSliderSlider horizontal/vertical which can be used on client/server side.
TreeviewTreeview which support AJAX to dynamicaly open nodes, edit node, drop node and other features (checkbox,...).
SwapSwap items between two list by using Drag/Drop or button.
AjaxMessageQueueAjaxMessageQueue is able to poll messages comming from from server. You could use this control to get messages loggued with Log4j.

See the Live Demo

Demo show controls which work on client side :

What is the difference with AjaxTags?

JSControlsTags looks like AjaxTags. This project doesn't want to compete with this famous project, but :

  • add capability to manage controls on client side.
  • add other controls like slider.
  • using JSON to pass messages between server and browser, although AjaxTags uses XML.