With jQuery UI 1.9 this popular JavaScript Library provides a Menu Widget, which is now also available in the Struts2 jQuery Plugin. jQuery UI 1.9 includes some API redesigns which also touches the Struts2 jQuery Plugin. So please respect the Upgrade Guide.

Menu Tag

The Menu Tag can be used with some manually added Menu Items or it can be generated form a List of Values. Two new Showcase Examples explain this. Struts2 jQuery Menu

    <sj:menu id="menuWithItems" cssStyle="width:50%">
        <sj:menuItem title="Struts2" href="http://struts.apache.org/2.x/index.html"/>
        <sj:menuItem title="Struts2 jQuery News" menuIcon="ui-icon-extlink" href="http://www.jgeppert.com/category/java/struts2-jquery/"/>
        <sj:menuItem title="Struts2 Plugins">
            <sj:menu id="subMenuPlugins" cssStyle="width:50%">
                <sj:menuItem title="Struts2 Plugins" href="https://cwiki.apache.org/S2PLUGINS/home.html"/>
                <sj:menuItem title="Struts2 jQuery Plugin" href="http://code.google.com/p/struts2-jquery/"/>
                <sj:menuItem title="Struts2 Bootstrap Plugin" href="http://code.google.com/p/struts2-jquery/"/>
            </sj:menu>
        </sj:menuItem>
 
        <sj:menuItem title="Struts2 @ Social Media">
            <sj:menu id="subMenuSocialMedia" cssStyle="width:50%">
                <sj:menuItem title="Struts2 @ Twitter" href="https://twitter.com/TheApacheStruts"/>
                <sj:menuItem title="Struts2 @ Google+" href="https://www.google.com/+ApacheStruts"/>
                <sj:menuItem title="Struts2 @ Facebook" href="http://www.facebook.com/struts2"/>
            </sj:menu>
        </sj:menuItem>
 
        <sj:menuItem title="AJAX">
            <sj:menu id="subMenuAjax" cssStyle="width:50%">
                <s:url var="ajax1" value="/ajax1.action"/>
                <sj:menuItem title="Ajax 1" href="%{ajax1}" targets="result"/>
                <s:url var="ajax2" value="/ajax2.action"/>
                <sj:menuItem title="Ajax 2" href="%{ajax2}" targets="result" effect="highlight" effectDuration="2500"/>
                <s:url var="ajax3" value="/ajax3.action"/>
                <sj:menuItem title="Ajax 3" href="%{ajax3}" targets="result" onBeforeTopics="beforeLink"
                             onCompleteTopics="completeLink"/>
                <s:url var="ajax4" value="/ajax4.action"/>
                <sj:menuItem title="Ajax 4" href="%{ajax4}" menuIcon="ui-icon-gear" targets="result" effect="bounce" effectDuration="1000"/>
            </sj:menu>
        </sj:menuItem>
    </sj:menu>

Spinner Tag

The currently based Spinner Tag was based on an community jQuery plugin. This plugin was replaced by the Spinner Widget provided by the jQuery UI Lib itself. This brings some API Changes, especially the handling for Currency and Number Formating was changed. This is now based on jQuery Globalize project.

Modern Web Application Development With Apache Struts2 - ApacheCon Europa 2012

I give my first Conference Talk ever at the ApacheCon Europa 2012 together with René Gielen the PMC Chair of the Apache Struts Project. This was a great Experience for me. The Talk was recorded and is now free available at youtube.com. This talks explains how to develop modern Web Applications with Apache Struts and the both Plugins Struts2 jQuery and Struts2 Bootstrap.

Slides

Video

Code

The Code form our Todo Example is free available at github.

https://github.com/jogep/struts2-todo-examples

Simply check it out and run mnv:install to get the war file or run mvn:jetty run and take a look at the result in your browser.

http://localhost:8080/todo/todo

Library Updates

For a complete list of changes since last version, please visit the Changelog.

Download: http://code.google.com/p/struts2-jquery/downloads/list
Showcase: http://struts.jgeppert.com/struts2-jquery-showcase/
Issues: http://code.google.com/p/struts2-jquery/issues/list
User Group: http://groups.google.com/group/struts2-jquery