Stack Name - Struts2


The is the base reusable implementation for Apache Stuts2 type tech stacks used to create a complete Java web app using its Model-View-Controller architecture. The stack includes:
  • Struts2:
    • This framework is uses an MVC design pattern for creating modern Java web applications. It favors convention over configuration and is extensible using a plugin architecture.
  • Hibernate:
    • An object–relational mapping tool for the Java programming language. It provides a framework for mapping an object-oriented domain model to a relational database
  • JUnit:
    • Unit testing framework for Java
  • JQuery:
    • A JavaScript library designed to simplify HTML DOM tree traversal and manipulation, as well as event handling, CSS animation, and Ajax
  • Bootstrap:
    • An open-source CSS framework directed at responsive, mobile-first front-end web development. It contains CSS- and JavaScript-based design templates for typography, forms, buttons, navigation, and other interface components


Access Public
Derived From
Long Name Struts
Short Name Struts2
Language(s) Java 8+, Javascript, YAML, HTML, XML, Velocity Macros
Git Url
Example Project YAML


Along with what is supported by the parent  tech stack (, the following are overridden and additional capabilities:
  • Build/Maven:
    • A customer pom.xml to invoke Spark via Maven plugin
  • Presentation/Backend:
    • JSP:
      • Templates for creating form and list JSP (Java Server Pages) files for each applicable entity discovered in the model, along with other standard application JSP files (header, footer, login, logoff, etc..)
    • Web-Inf
      • Custom web.xml to handle leveraging the Stuts2 Servlet implementation
    • MVC/Struts:
      • Per Struts2 architecture, contains a single template file used to create an XML file containing all routing declarations.


If using a CI/CD platform such as CircleCI, AWS Codebuild, Jenkins, etc.., it is best to refer to the Pipeline YAML file generated for that platform. If not using a CI/CD platform refer to the instructions below on how to use the generated project.

To get started manually

Whichever of the following methods you choose, the database selected during project generation should be running and accessible to the application.

Using Apache Tomcat

In the root directory of the generated project is a generated Maven pom.xml file that contains the declarations and dependencies to build a single WAR file containing the generated application.
mvn package
This resulting WAR will be located in the target subdirectory,  You can copy this file to a compliant Java Servlet engine such as Apache Tomcat.  When you start the servlet engine, the application will be available at:

Using Built-in Jetty Engine

To quickly build and execute the application using Maven’s Jetty plug-in, issue the following:
mvn package jetty:run