Pierwszym krokiem będzie stworzenie serwera Apache tomcat. W tym celu z menu widoku Servers wybieramy New-Server.
Jeśli w liście rozwijanej Server runtime environment nie mamy do wyboru serwera, musimy go dodać klikając Add, a następnie wskazać lokalizację serwera.
Następnym krokiem będzie stworzenie projektu aplikacji. Wchodzimy w File-New-Dynamic Web Project
Ustawiamy konfigurację jak wyżej. Następnie w WebContent-WEB-INF-lib dodajemy pliki jar:
Kolejnym krokiem jest stworzenie klasy, która będzie naszą akcją.
package com.blogspot.justdiscoverit; public class LoginAction { private String username; private String password; public String execute() { if (this.username.equals("Admin") && this.password.equals("admin1")) { return "success"; } else { return "error"; } } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } }W powyższej klasie mamy dwa pola, oraz metody get i set do każdego z nich. Ponadto mamy także metodę execute() w której sprawdzamy, czy pola mają odpowiednie wartości i w zależności od wyniku zwracamy wartość String "success" albo "error". Teraz potrzebujemy dwa pliki: Login.jsp oraz Welcome.jsp:
Login.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<s:form action="login" method="post">
<s:textfield name="username" key="label.username" />
<s:password name="password" key="label.password" />
<s:submit method="execute" key="label.login" />
</s:form>
</body>
</html>
Welcome.jsp
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags"%>
<html>
<body>
<h2>
Hello <s:property value="username" /> !
</h2>
</body>
</html>
Ważne jest, aby w każdym pliku znajdował się kod:
<%@ taglib prefix="s" uri="/struts-tags"%>
Plik Welcome.jsp jest bardzo prosty, pobiera on tylko wartość pola username poprzed wywałanie metody getUsername() z klasy LoginAction.
W pliku Login.jsp w znaczniku form znajduje się wpis action="login" dzięki któremu zostanie dopasowana odpowienia klasa zdefiniowana w pliku struts.xml
Następnie dodajemy do projektu New-Source Folder i nadajemy mu nazwę resources. W dodajemy tam plik o nazwie ApplicationResources.properties a w jego zawartości umieszczamy:
label.username= User label.password= Password label.login= LoginWartości te będą wykorzystywane w plikach JSP.
W tym samym katalogu tworzymy plik struts.xml i umieszczamy w nim następujący kod:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<constant name="struts.devMode" value="false" />
<constant name="struts.custom.i18n.resources" value="ApplicationResources" />
<package name="default" extends="struts-default">
<action name="login" class="com.blogspot.justdiscoverit.LoginAction">
<result name="success">Welcome.jsp</result>
<result name="error">Login.jsp</result>
</action>
</package>
</struts>
Wszystkie definiowane wpisy trzeba umieszczać w <struts> .. </struts>. Możemy tam definiować pakiety, a w nich definiować nowe akcje. Mamy tutaj zdefiniowaną akcję o nazwie login oraz zdefiniowane odwołanie do klasy, która jest przypisana do tej nazwy, czyli w tym przypadku klasa LoginAction. Mamy zdefiniowane także możliwe rezultatu działania tej akcji - success oraz error - i w zależności od wyniku działania zostaniemy przekierowani do pliku Welcome.jsp lub Login.jsp.
Ostatnim krokiem jest edycja pliku web.xml znajdującego się w WebContent-WEB-INF. Jeśli go tam nie ma, należy go stworzyć i umieścić następujący kod:
<?xml version="1.0" encoding="UTF-8"?>
<web-app id="WebApp_9" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>Struts2 Application</display-name>
<filter>
<filter-name>struts2</filter-name>
<filter-class>
org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter
</filter-class>
</filter>
<filter-mapping>
<filter-name>struts2</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<welcome-file-list>
<welcome-file>Login.jsp</welcome-file>
</welcome-file-list>
</web-app>
Po uruchomieniu naszej aplikacji na serwerze i wpisaniu http://localhost:8080/Struts2/Login.jsp otrzymamy formularz do logowania:
Jeśli wpiszemy wartości, które będą zgadzały się z tymi zdefiniowanymi w klasie LoginAction, zostaniemy przekierowaniu do Welcome.jsp i w wyniku otrzymamy:
To wszystko :) Mam nadzieję, że udało mi się choć trochę przybliżyć działanie technologii Apache Struts2.
Brak komentarzy:
Prześlij komentarz