4 Easy Steps to create a Java based Web Application with Struts2 and jQuery
Posted by jogep on 10 Mai 2011 | Tagged as: java, jQuery, Struts jQuery Plugin, struts2
Step1: Install and Configure Maven
We use Maven to describe this software project and to manage the dependencies.
1.) Download maven from http://maven.apache.org/download.html and extract it.
2.) Add MAVEN_HOME/bin to your PATH
Step2: Create your Struts2 Project
1.) Switch to your Eclipse Workspace.
cd workspace2.) Create the Project based on the struts2-archetype-convention archetype.
mvn archetype:generate -B -DgroupId=com.jgeppert.examples -DartifactId=struts2-example -DarchetypeGroupId=org.apache.struts -DarchetypeArtifactId=struts2-archetype-convention -DarchetypeVersion=2.2.3
3.) Wait until maven download the whole Internet except Cats Pictures and Porn.
4.) Go into the new created folder struts2-example
cd struts2-example5.) Open pom.xml in an Editor
6.) Set your project version to 0.0.1
<version>0.0.1</version>
7.) Set your Struts2 Version to 2.3.1.2
<properties> <struts2.version>2.3.1.2</struts2.version> </properties>
8.) Build your blank application
mvn install9.) Try it out
mvn jetty:run
10.) Open http://localhost:8080/struts2-example/ in your Browser
The Message "Struts is up and running..." should appear.
Step3: Create the Eclipse Project
1.) Open your Eclipse IDE
2.) Install m2-eclipse and restart your IDE.
3.) Open the Import Dialog in your Eclipse IDE and import your created Project "struts2-example".


Step4: Add the Struts2 jQuery Plugin to your Project
The Struts2 jQuery Plugin provides an easy Integration of jQuery into this Project.
1.) Open your pom.xml and edit your project properties.
<properties> <struts2.version>2.3.1.2</struts2.version> <struts2jquery.version>3.2.1</struts2jquery.version> </properties>
2.) Add the Dependencies
<dependency> <groupId>com.jgeppert.struts2.jquery</groupId> <artifactId>struts2-jquery-plugin</artifactId> <version>${struts2jquery.version}</version> </dependency>
3.) Create a new Action YourNameAction.java inside of the com.jgeppert.examples.actions Package
package com.jgeppert.examples.actions; import com.opensymphony.xwork2.ActionSupport; public class YourNameAction extends ActionSupport { private String name; public String execute() throws Exception { if(name == null || name.length() < 3){ addActionError("Please enter valid name with more the 2 characters!"); return ERROR; } return SUCCESS; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
4.) Replace the Content of hello.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <%@ taglib prefix="sj" uri="/struts-jquery-tags"%> <html> <head> <title>My App</title> <sj:head jquerytheme="start"/> <style> body { font-family: Arial,sans-serif; font-size: 9pt; } </style> </head> <body> <h2>Please enter a Name</h2> <s:form action="your-name" theme="xhtml"> <s:textfield name="name" label="Enter your Name"/> <sj:submit targets="result" effect="highlight" value="Submit" button="true" /> </s:form> <h3>AJAX Result</h3> <div id="result"></div> </body> </html>
5.) Create a new JSP inside of your WEB-INF/content folder called your-name.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <h4>Welcome <s:property value="name"/>!</h4>
6.) Create a new JSP inside of your WEB-INF/content folder called your-name-error.jsp
<%@ page contentType="text/html; charset=UTF-8" %> <%@ taglib prefix="s" uri="/struts-tags" %> <s:actionerror theme="jquery"/>
7.) Run "mvn install" and "mvn jetty:run"
8.) Open http://localhost:8080/struts2-example/ in your Browser and our created form should be appear.

9.) Submit without enter a Name. The Error Message should be visible inside of our defined Target Div without reloading the whole Page.
10.) Submit you form with an valid name.

Download the Sample Project Sources.
13 Comments »
Twitter
Facebook
Github
Xing
LinkedIn
Viel Dank!
Hi thanks a lot the example works fine. One question this may be because I’m not familier with the maven, I couldn’t fing the struts.xml. I searched everywhere in the project folder including the location specified in the pom.xml (src/main/resources/struts.xml). Where is the struts.xml file?
This generated webapp is based on the Struts2 Convention Plugin. You only need a struts.xml if you like to overwrite the defaults or you like to set some configs. But it isn’t necessary.
Thanks.. It is little cnfusing to me because i’m not much familiar with annotations.
I like “showcase”
but how do i validate form with modeldriven Action
like authenticate user with database
please reply
thanks in advanced…
Worked without a fuss. Lovely article. Only problem was with installed m2e plugin. Gave this link http://download.eclipse.org/technology/m2e/releases/ for plugin install and it went through fine.
Curious on why you used YAML for your layout framework in your sample? Would you recommend using YAML for a web app using Struts2, your struts2-jquery and JSON?
I tried working with jquery-ui-framework and it appears there are conflicts.
thanks
In this Example I don’t use YAML. In the Struts2 jQuery Showcases I use it because I was to lazy to create the Styles for an CSS Colum Layout.
What conflicts do you mean?
Good job. Thanks for sharing this easy steps. It’s very useful.
Thanks a lot. A very good example. It works with the first run under Tomacat 7, but it deosn’t work uder JBoss7.1. Do you have any idea why it doesn’t work with JBoss 7.1.
Thanks.
Maybe your Problem is releated to this Struts2 Issue.
https://issues.apache.org/jira/browse/WW-3662
Thank you so much for responding so quickly. In my case it is just a WARN. see below:
WARN [com.opensymphony.xwork2.util.FileManager] (MSC service thread 1-1) Could not create JarEntryRevision for [vfs:/C:/esw/server/jboss-as-7.1.0.Final/standalone/deployments/struts2-example.war/WEB-INF/lib/struts2-json-plugin-2.3.1.2]!: java.io.FileNotFoundException: vfs:\C:\esw\server\jboss-as-7.1.0.Final\standalone\deployments\struts2-example.war\WEB-INF\lib\struts2-json-plugin-2.3.1.2 (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch)
Acctually I haven’t any problem with struts2 it works well. I would like to use struts2-Jquery-plugins in my application which is running under JBOSS 7. But when I test your example deployed on JBoss7.1 clicking on submit button nothing happens and any error occur. while it works well in tomcat7.
Thank you.
[...] start with the Grid Plugin. This new Archetypes shrinks the Steps described in my previous post 4 Easy Steps to create a Java based Web Application with Struts2 and jQuery to only one Step. mvn archetype:generate -B -DgroupId=com.mycompany.mysystem [...]