Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3
Info

The example code for this tutorial, annotations, is available for checkout at https://svngithub.com/apache.org/repos/asf/struts/sandbox/trunk/struts2examples/Image Removedstruts-examples

Introduction

In our previous tutorials we've been using an XML file (struts.xml) to configure our applications. The XML file wires up the action names (register), with ActionSupport classes (RegisterAction.java), and with the result to render back to the browser (register.jsp). Struts 2 provides an alternative to using XML to configure your application by using standard naming conventions and annotations for your action names, ActionSupport classes, and results.

...

Struts 2 enables the use of standard naming conventions and annotations when you include the Convention plugin in your application's class path. If you're using Maven you'll need to add a dependency:

Code Block
XMLxmlXML
xml
titleConvention Plugin Dependency


<dependency>
  <groupId>org.apache.struts</groupId>
  <artifactId>struts2-convention-plugin</artifactId>
  <version>2.2.1</version>
</dependency>

...

The link to Register for the drawing on the example application's home page follows this work flow. The link value is register-input.action. If you examine the RegisterAction.java class you'll find the input method with an Action annotation.

Code Block
JAVAjavaJAVA
java
titleAction Annotation


@Action("register-input")
public String input() throws Exception {

	logger.info("In input method of class Register");
		
	return INPUT;
}

...

In previous examples, we included in struts.xml values for some of the Struts 2 configuration parameters.

Code Block
XMLxmlXML
xml
titlestruts.xml parameter configuration


<constant name="struts.devMode" value="true" />

When we don't use a struts.xml file, we can set the value of these Struts 2 parameters by using filter parameters in web.xml:

Code Block
XMLxmlXML
xml
titleStruts 2 Parameter Configurate web.xml


<filter>
  <filter-name>struts2</filter-name>
    <filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>
      <init-param>
	  <param-name>struts.devMode</param-name>
	  <param-value>true</param-value>
      </init-param>
</filter>

...