Tutorial: Create Struts 2 Application in Eclipse. Struts. 2 Tutorial. Welcome to the Part 2 of 7- part series where we will explore the world of Struts 2 Framework. In previous article we went through the basics of Struts. Architecture diagram, the request processing lifecycle and a brief comparison of Struts. Struts. 2. If you have not gone through the previous article, I highly recommend you to do that before starting hands- on today. Struts Tutorial in Eclipse: A step by step tutorial to create Struts application in Eclipse IDE. ![]() Things We Need. Before we starts with our first Hello World Struts 2 Example, we will need few tools. JDK 1. 5 above (download)Tomcat 5. Glassfish, JBoss, Websphere, Weblogic etc) (download)Eclipse 3. Apache Struts. 2 JAR files: (download). Following are the list of JAR files required for this application. Note that depending on the current version of Struts. Our Goal. Our goal is to create a basic Struts. Login page. User will enter login credential and if authenticated successfully she will be redirected to a Welcome page which will display message ” Howdy, < username> …!“.
If user is not authenticated, she will be redirected back to the login page. Getting Started. Let us start with our first Struts. Open Eclipse and goto File - > New - > Project and select Dynamic Web Project in the New Project wizard screen. After selecting Dynamic Web Project, press Next. Write the name of the project. For example Struts. Hello. World. Once this is done, select the target runtime environment (e. Apache Tomcat v. 6. This is to run the project inside Eclipse environment. After this press Finish. Once the project is created, you can see its structure in Project Explorer. Now copy all the required JAR files in Web. Content - > WEB- INF - > lib folder. Create this folder if it does not exists. Mapping Struts. 2 in WEB. ![]() An exhaustive list of best hand picked free Eclipse plug-ins for a developer to be efficient.![]() As discussed in the previous article (Introduction to Struts. Struts. 2 application will be the Filter define in deployment descriptor (web. Hence we will define an entry of org. Filter. Dispatcher class in web. Open web. xml file which is under WEB- INF folder and copy paste following code.< ? UTF- 8"?>. < web- app id="Web. App_9" version="2. XMLSchema- instance". Location="http: //java. Struts. 2 Application< /display- name>. Filter. Dispatcher. Login. jsp< /welcome- file>. The above code in web. Struts. 2 filter with url /*. The default url mapping for struts. Also note that we have define Login. Note: The Filter. Dispatcher filter is deprecated since Struts version 2. If you are using latest version of Struts. Struts. Prepare. And. Execute. Filter class instead.< filter>. Struts. Prepare. And. Execute. Filter< /filter- class>. The Action Class. We will need an Action class that will authenticate our user and holds the value for username and password. For this we will create a package net. This package will contain the action file. Create a class called Login. Action in net. viralpatel. Login. Action {. private String username. String password. public String execute() {. String get. Username() {. Username(String username) {. String get. Password() {. Password(String password) {. Note that, above action class contains two fields, username and password which will hold the values from form and also contains an execute() method that will authenticate the user. In this simple example, we are checking if username is admin and password is admin. Also note that unlike Action class in Struts. Struts. 2 action class is a simple POJO class with required attributes and method. The execute() method returns a String value which will determine the result page. Also, in Struts. 2 the name of the method is not fixed. In this example we have define method execute(). You may want to define a method authenticate() instead. The Resource. Bundle. Resource. Bundle is very useful Java entity that helps in putting the static content away from the source file. Most of the application define a resource bundle file such as Application. Resources. properties file which contains static messages such as Username or Password and include this with the application. Resource. Bundle comes handy when we want to add Internationalization (I1. N) support to an application. We will define an Application. Resources. properties file for our application. This property file should be present in WEB- INF/classes folders when the source is compiled. Thus we will create a source folder called resources and put the Application. Resources. properties file in it. To create a source folder, right click on your project in Project Explorer and select New - > Source Folder. Specify folder name resources and press Finish. Create a file Application. Resources. properties under resources folder. Copy following content in Application. Resources. properties. The JSPWe will create two JSP files to render the output to user. Login. jsp will be the starting point of our application which will contain a simple login form with username and password. On successful authentication, user will be redirected to Welcome. Create two JSP files Login. Welcome. jsp in Web. Content folder of your project. Copy following content into it. Login. jsp< %@ page content. Type="text/html; charset=UTF- 8"%>. Struts 2 - Login Application | Viral. Patel. net< /title>. Struts 2 - Login Application< /h. Welcome. jsp< %@ page content. Type="text/html; charset=UTF- 8"%>. Welcome< /title>. Howdy, < s: property value="username" />..!< /h. Note that we have used struts. Struts. 2 comes with a powerful built- in tag library to render UI elements more efficiently. The struts. xml file. Struts. 2 reads the configuration and class definition from an xml file called struts. This file is loaded from the classpath of the project. We will define struts. Create file struts. Copy following content into struts. UTF- 8" ?>. < ! DOCTYPE struts PUBLIC. Apache Software Foundation//DTD Struts Configuration 2. EN". "http: //struts. Dynamic. Method. Invocation". Mode" value="false" />. Application. Resources" />. Login. Action">. Welcome. jsp< /result>. Login. jsp< /result>. Note that in above configuration file, we have defined Login action of our application. Two result paths are mapped with Login. Action depending on the outcome of execute() method. If execute() method returns success, user will be redirected to Welcome. Login. jsp. Also note that a constant is specified with name struts. This constant specify the resource bundle file that we created in above steps. We just have to specify name of resource bundle file without extension (Application. Resources without . Our Login. Action contains the method execute() which is the default method getting called by Sturts. If the name of method is different, e. Login. Action">. Almost Done. We are almost done with the application. You may want to run the application now and see the result yourself. I assume you have already configured Tomcat in eclipse. All you need to do: Open Server view from Windows - > Show View - > Server. Right click in this view and select New - > Server and add your server details. To run the project, right click on Project name from Project Explorer and select Run as - > Run on Server (Shortcut: Alt+Shift+X, R)But there is one small problem. Our application runs perfectly fine at this point. But when user enters wrong credential, she is redirected to Login page. But no error message is displayed. User does not know what just happened. A good application always show proper error messages to user. So we must display an error message Invalid Username/Password. Please try again when user authentication is failed. Final Touch. To add this functionality first we will add the error message in our Resource. Bundle file. Open Application. Resources. properties and add an entry for error. The final Application. Resources. properties will look like: Also we need to add logic in Login. Action to add error message if user is not authenticated. But there is one problem. Our error message is specified in Application. Resources. properties file. We must specify key error. Login. Action and the message should be displayed on JSP page. For this we must implement com. Text. Provider interface which provides method get. Text(). This method returns String value from resource bundle file. We just have to pass the key value as argument to get. Text() method. The Text. Provider interface defines several method that we must implement in order to get hold on get. Text() method. But we don’t want to spoil our code by adding all those methods which we do not intend to use.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. Archives
November 2017
Categories |