Struts 2 Validation Using Annotation

Struts2 Validation Using Annotation explains about step by step example of Struts2 Validation With Eclipse

Apache Struts 2, is a popular Java Model-View-Contraller (MVC) framework, which is developed by merging WebWork and Struts 1.x web frameworks.

Struts 2 have lot off difference with struts 1, struts 2 have implemented with an idea of convention over configuration, it also have many annotations in order to increase the developer productivity.

Struts 2 provides in built validation features. You can see how to validate the fields in struts 2, on below example

By using annotation in struts 2, you can remove struts.xml configuration


When you deploy your struts 2 web application, you may get FilterDispatcher is deprecated! Please use the new filters! warning message, this is because FilterDispatcher filter is deprecated since Struts version 2.1.3, you need to re-configure your application with StrutsPrepareAndExecuteFilter


By default Struts2 Convention plug-in tries to scan, action classes inside the packages like strut, struts2, action or actions. In our example package name is like, so action class will taken from this package.

Also you need to implement com.opensymphony.xwork2.ActionSupport for annotations support

Required Libraries
  1. JDK 6
  2. Eclipse 3.7
  3. struts-

Following jar must be in classpath

  1. asm-3.3.jar
  2. asm-commons-3.3.jar
  3. commons-fileupload-1.3.jar
  4. commons-io-2.0.1.jar
  5. commons-lang3-3.1.jar
  6. commons-logging-1.1.3.jar
  7. freemarker-2.3.19.jar
  8. javassist-3.11.0.GA.jar
  9. ognl-3.0.6.jar
  10. struts2-convention-plugin-
  11. struts2-core-
  12. xwork-core-

You can see the project structure below

Struts 2 Validation Using Annotation


<%@taglib uri="/struts-tags" prefix="s"%>
<s:head />
	<s:form action="register" method="post">
		<s:textfield name="username" label="User Name" />
		<s:textfield name="age" label="Age" />
		<s:password name="password" label="Password" />
		<s:submit value="register" />

1 2 3 Next

Your email address will not be published. Required fields are marked *