Some features may be available in IDEA 8 ("Diana") EAP only, please see Struts2PluginChangeNotes for more information.

"Hello World" with Struts 2 and IntelliJ IDEA 8 - Detailed introductory blog post by Tabrez Iqbal

Symbol

Status

(minus)

planned

(plus)

in progress

(tick)

done

(question)

future planning

IDE integration

(tick) "Go To Action/Package" by name

Press Ctrl+Shift+Alt+N (Go To -> Symbol) to quickly navigate to any Action/Package by simply entering its name (including wildcards):

(tick) Dedicated icons for configuration/JAVA (Action) files

Recognize Struts related files/classes at a glance throughout the IDE (Project/Packages View, Editor tabs, ..):

Struts 2 facet

All plugin configuration settings are bundled in a dedicated facet. Simply attach a new Struts 2-facet to an existing Web-facet, create a fileset and add your struts.xml files from all auto-scanned configuration files in your project and the plugin is ready to work:

(tick) Dedicated facet with configuration options
(tick) File Set manager

Group and manage your struts.xml files with an easy to use editor, providing maximum flexibility w/r to your project setup.

(tick) Detect struts.xml files not mapped to file sets

Spot setup errors easily, additionally providing a quickfix to add the current struts.xml-file in question to any existing fileset.

(plus) Library validator/setup
(minus) Library validator/setup for standard plugins (Spring, Tiles, JSF, ..)
(tick) Autodetection of Struts 2 facets

Existing struts.xml files are recognized upon opening your project and a new S2 facet is created automatically.

(tick) Integration with "New Project"

Add a blank ready-to-start Struts 2 application template by selecting Struts 2 from the list of available technologies. A S2-facet with default fileset and an empty struts.xml-file already mapped in web.xml will be created automatically, all necessary libraries will be setup as well.

struts.xml/validation.xml

(plus) Autocompletion for all possible elements

Auto-completion is available for virtually all tags and attributes, just give it a try:

(plus) Rename refactoring/Find Usages for all referencable elements

Need to refactor your S2 application? Just use the Rename refactoring (Shift+F6) or perform Find Usages (Alt+F7 or Ctrl+Alt+F7):

(plus) Navigation to referenced elements/JAVA-classes

Simply Ctrl-click (or press Ctrl+B) on any element to navigate to its declaration - or take a peek without leaving the current editor using Quick Definition Lookup (Ctrl+Shift+I).

(plus) Highlighting of configuration/reference errors

Errors are highlighted immediately in the editor, additional validation is triggered for Make Project (see "Validation" tab in S2 facet for more options).

(plus) Quickfixes
(minus) struts.xml: restrict resolving to result location depending on result-type (e.g. Velocity)
(plus) Various inspections for common configuration errors

Highlight common configuration errors or possible problems on-the-fly.

(tick) Structure View

Visually groups all relevant info with Autoscroll from/to source:

(plus) Pageflow graph (struts.xml)

Graph of all relevant S2 elements (IDEA 8 only).

validation.xml

(minus) Navigation to/from corresponding Action-class
(minus) Show validation.xml node(s) under corresponding Action-class (like GUI-Designer forms)
(minus) Create corresponding validation.xml-template from Action
(tick) Structure View

Actions (JAVA)

(tick) Navigation to Action-declaration in struts.xml

Simply click on the action icon in the left editor bar to quickly open up the corresponding entry(ies) in your struts.xml:

(minus) Highlight unused Actions, Quickfixes: Delete, Map in struts.xml
(minus) Autocompletion/navigation to result-declaration in struts.xml

JSPs

(tick) Navigation to Action-declaration/class

Click on the Action-class icon to quickly open the corresponding JAVA-code or Ctrl+click on the "action"-attribute to go to the struts.xml-definition:

(minus) Autocompletion/navigation for form properties
(plus) Autocompletion/navigation for other tag attributes

Autocompletion is available for most attributes with static values.

(tick) JavaScript support

Enjoy the power of IDEA's powerful JavaScript-support within all S2 UI-tags (plugin "JavaScript Support" must be enabled).

(tick) CSS support

Define inline-styles (cssStyle) or reference existing CSS classes (cssClass) (IDEA 8: plugin "CSS Support" must be enabled).

Plugins/3rd Party Extensions

(tick) Support struts2-spring-plugin

Reference Spring beans in <action> "class" and constant "value" (plugin "Spring Support" must be enabled and Spring facet configured properly).

(minus) Support CodeBehind plugin
(minus) Integration with Tiles 2 (via Tiles 2 plugin)
(question) Support for sitemesh.xml

OGNL

Separate plugin.

(minus) Basic syntax highlighting support
(question) Full support for OGNL expressions, including resolving of available properties in S2 context