Introduction
Struts 2 Plugin for JetBrains IntelliJ IDEA provides tight and feature-rich integration to develop Struts 2 applications. Real productivity features (including refactoring support), smart assistance just everywhere as well as being a tool understanding the structure and framework will make you more productive instantly. No more countless wizards just generating some XML or code without much intelligence!
Info | ||
---|---|---|
| ||
To get a quick overview watch these screencasts to see Struts 2 support "in action" Navigation and Autocompletion: demonstrates basic navigation and autocompletion features more to follow soon... |
Section | ||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
About this page
All (main) features are grouped and listed below. Please check the following table to understand the status indicators.
Symbol | Status |
---|---|
planned | |
in progress/mostly done | |
done | |
future planning |
Info | ||
---|---|---|
| ||
Starting with IntelliJ IDEA 12.1 icons have changed slightly. |
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.
Note | ||
---|---|---|
| ||
|
Dedicated facet with configuration options
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.
Detect struts.xml files not mapped to file sets
Spot setup errors easily, additionally providing a quickfix to add the unmapped struts.xml
-files to any existing fileset.
Library validator/setup
Creates IDEA project/module-library and - if required - downloads all necessary JAR files required for Struts 2.
Library validator/setup for standard plugins (Spring, Tiles, JSF, ..)
Autodetection of Struts 2 facets
Existing struts.xml
-files are recognized upon opening your project and a new S2 facet will be created automatically.
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.
IDE integration
"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):
"Navigate -> Related File"
Tip: just start typing to narrow down the result list of related items and press ENTER to navigate.
IDEA 10.5+
Use this shortcut to quickly navigate from any web-resource used in <result>
to its <action>
-declaration and/or Action-method.
IDEA 11+
Also vice versa from Action-class to <action>
-declaration and any referenced result(s) files.
Navigate from Action-class to all corresponding validation.xml
files.
Dedicated dictionary
IDEA 11+
A bundled dictionary providing Struts-specific words and acronyms integrates with IDEA's builtin spellchecker.
Dedicated icons Struts elements
Recognize Struts related configuration files or code at a glance throughout the IDE (Project/Packages View, Editor tabs, Autocompletion, …):
struts.xml/validation.xml
Autocompletion
Please see this screencast to see it "in action" (a small part only!).
Autocompletion (CTRL+Space
) is available for virtually all tags and attributes, just give it a try:
Rename refactoring/Find Usages
Need to refactor your S2 application? No more manual search and replace - just use Rename refactoring (Shift+F6
) or perform Find Usages (Alt+F7
/Ctrl+Alt+F7
):
Navigation to referenced elements
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
).
Highlighting of configuration/reference errors
Errors are highlighted immediately in the editor, additional validation is triggered for Make Project.
IDEA 7: see "Validation" tab in S2 facet for more options
IDEA 8+: see Settings->Compiler->Validation
Quickfixes
Various quickfixes to create missing elements etc.
struts.xml: restrict resolving to <result> value depending on result-type (e.g. Tiles, Velocity)
IDEA 10+
Completion will only show resources relevant for the given (or inherited) result type.
Configuration errors
Highlight common configuration errors or possible problems on-the-fly - while you're editing. Catch the bugs before time-consuming deploy & manual-test.
Structure View
Visually groups all relevant info with Autoscroll from/to source. Hint: searching for something in the tree? Just start typing its name to find it.
struts.xml: Pageflow graph
IDEA 8+
Graph of all actions and results makes it easy to understand the structure of your application.
validation.xml
Please see this screencast to see it in action: Validator integration
Navigation to/from corresponding Action-class
IDEA 11+
Autocompletion/Navigation to Action-class properties in <field>
"name"
"Navigate -> Related File" from Action-class to corresponding validation.xml
file(s).
Show validation.xml node(s) under corresponding Action-class (like GUI-Designer forms)
Create corresponding validation.xml
-template from Action
IDEA 11+
Intention to create new ActionClassName-validation.xml
from file template.
Structure View
I18N-support
IDEA 11+
Support for .properties
-based I18N for <message>
"key" (can be disabled in S2 facet, tab "Features").
Actions (JAVA/Groovy)
Navigation to Action-declaration in struts.xml
Simply click on the action icon in the left editor bar to quickly open up the corresponding mapping(s) in struts.xml
:
IDEA 8.1.1+: Groovy support added
Navigate to result
IDEA 10.5+
Use the gutter icon (or use Navigate->Related File) to directly navigate to any result(s) from your action method:
JSP
Navigation to Action-declaration/class
Click on the Action-class icon to quickly open the corresponding Action-class or Ctrl+click on the "action"-attribute open its struts.xml
-definition:
Autocompletion/navigation for form properties
IDEA 11+
Form properties will be autocompleted/resolved in "surrounding" Action class. Ofcourse, rename refactoring and finding usages is supported here as well - no more manual search and replace necessary when updating your forms!
Autocompletion/navigation for other tags
Autocompletion is available for (almost) all attributes with static values.
JavaScript support
(plugin "JavaScript Support" must be enabled)
Enjoy the power of IDEA's powerful JavaScript-support within all S2 UI-tags.
CSS support
(IDEA 8+: plugin "CSS Support" must be enabled)
Define inline-styles (cssStyle
) or reference existing CSS classes (cssClass
).
I18N-support
IDEA 10+
Support for .properties
-based I18N for <s:text>
(can be disabled in S2 facet, tab "Features").
OGNL (Object Graph Navigation Library) Support
IDEA 11+
Provides editing, highlighting and autocompletion support for OGNL expressions - not just for Struts 2 applications.
Please see Struts 2 Plugin OGNL Support for details.
Plugins/3rd Party Extensions
Info |
---|
Make sure to include |
Spring plugin
(plugin "Spring Support" must be enabled and Spring facet setup properly)
Please see this screencast to see Spring integration "in action".
Reference Spring beans where supported (e.g. in <action>
"class", <constant>
"value").
Convention plugin
IDEA 9+
Sophisticated configuration properties support
Autocompletion/navigation/usage search in annotations (WIP):
Tiles 2 plugin
(plugin "Struts 1.x" must be enabled)
IDEA 8.1.1+
struts2-tiles-plugin.jar
must be present as well as Tiles libraries. Configured tiles.xml
-files will be set automatically as described in http://struts.apache.org/2.x/docs/tiles-plugin.html.
Freemarker
(plugin "FreeMarker support" must be enabled)
IDEA 8+
All supported S2 taglibs are automatically available:
Global variables as well as properties provided from corresponding Action-class will be resolved:
Velocity
(plugin "Velocity support" must be enabled)
IDEA 10.x+
Add all global macros (struts.vm
in struts2-core.jar) automatically.
Autocomplete all global variables.
Blog post with screen-shots
struts2-jQuery plugin
IDEA 9+
Provides autocompletion, navigation for JSP tags.
Blog post showing off some features