JetBrains IntelliJ IDEA 7/8/9 has full integration for Struts 2 development, please visit http://www.jetbrains.net/confluence/display/CONTEST/Struts2Plugin to read more about available features.

This document is an MRD (Marketing Requirements Document) for the ideal vision of what the Struts 2 IDEA Plugin will be. At this point, no IDEA plugin has been created for Struts 2. When it is created, it will be based on EclipseWork.

A key success for the framework is its ability to provide tools that make developers lives easier. This isn't just some configuration editor, but rather a complex integrated environment where developers can write their code, build JSPs, and have much of the redundant work related to automated or assisted. IDEA integration enables developers to not only write framework-based applications faster, but also with much higher quality.

The IDEA Plugin has the following features:

  • Configuration browser - you can browse namespaces and see both actions and views as well as their relationships. The browser lets you avoid hunting through xwork.xml and all the included files and instead presents a logical view of all your actions and their associated views. The browser also allows for very quick access to an action if you know it by name (and optional namespace).
  • Find by usages - finding usages on a field will show you were all the views that use that field are located.
  • Refactoring support - similar to find by usages, it is very useful to rename a field in an action (or even an object that is someone in the stack/object graph) and know that all the views that reference it have been updated as well
  • Internationalization support - you can select text in a JSP or other views and automatically extract it in to the a choice of the correct resource bundles (package.properties, struts.properties, etc). Conversely, you can press Ctrl-Q on <s:text/> tags to see what the actual text for a particular i18n key are.
  • Error reporting - the plugin is excellent at notifying you of errors before you deploy your application. Since many aspects of Struts 2 are based around loosely coupled and dynamic interactions, the plugin helps you see when you've had a typo such as "doccument" instead of "document". It highlights errors in OGNL expressions, i18n locations, and configuration mixups automatically for you. When these errors happen the plugin also gives you a choice of possible fixes (Ctrl-Enter).
  • Code completion - when using ui tags such as <s:select value="..."/> pressing Ctrl-Space pops up a code completion dialog that introspects through all the available properties that are in the value stack, including those in your action.
  • OGNL expression evaluator - When you're editing a page you should be able to have an OGNL expression evaluator that can execute your action and use its properties to evaluate OGNL expressions to show you what you get.
  • No labels

7 Comments

  1. Unknown User (lagcisco)

    quick access to action classes and action definitions, sort of like Ctl-N and Ctl-Shift-N work, I could jump to my /user/profile/edit action quickly without having to look for the actualy xml file where its located

    I would be nice to have completion in a couple of different areas such as

    ognl expressions, so say I have a <ww:textfield value="<Ctl-Space>"/> it should be able look into the action and see my user, actionMessages, actionErrors, etc propertys and popup a list of them to choose from

    css classes and css ids, this is out of the scope of the plugin but i'd nice to be able to have completions for css too, although I have my css files included in a sitemesh decorator.. which brings up another question, how about a sitemesh funcitonality too? or even a OpenSymphony IDEA Plugin? but thats getting out of hand already.. just thinking out loud here

  2. I think it would be difficult to add action-specific OGNL code-completion. I my experience, views are used by many actions, not just one. It would have to find all of the actions that are mapped to this view, find the common public methods, then display those. Not sure this would be faster then looking it up on your own.
    This does point to a possible need for interfaces between the action and view layer. Could Actions present themselves as interfaces to the view?

  3. Unknown User (danpfe)

    Are there currently any plans to actually create a plugin for either Eclipse or IDEA? I also believe that Webworks possibilities to succeed are slim if there is no IDE support, even though Java-programmers like to write lots of code and configuration files by hand...

  4. Unknown User (brain_wang)

    where is the plugin download ?

  5. Unknown User (rkhanmoh)

    If you checkout the link above your post you'll see that it's still in development. Would be good once it's complete though. Could always help it along by joining as a developer...

  6. Unknown User (brain_wang)

    Oh,sorry,But when is it complete?