Страница входа в Struts2 с проверкой
Apache Struts 2 — это платформа веб-приложений с открытым исходным кодом для разработки веб-приложений Java EE. Он использует и расширяет Java Servlet API, чтобы побудить разработчиков принять архитектуру модель-представление-контроллер. В этой статье мы увидим, как мы можем создать страницу входа с проверками с помощью Struts 2. Мы будем использовать теги пользовательского интерфейса Struts для создания страницы входа.
Перед созданием проекта Struts2 важно убедиться, что у вас установлен сервер Apache Tomcat и настроена среда IDE по вашему выбору, например Eclipse. Теперь, если вышеуказанные условия выполнены, выполните все шаги, указанные ниже. Мы собираемся использовать Eclipse IDE, чтобы все необходимые компоненты были созданы в рамках динамического веб-проекта. Давайте теперь начнем с создания динамического веб-проекта.
Создание динамического веб-проекта
Во-первых, вам просто нужно запустить Eclipse IDE и создать новый проект Dynamic Web Project. Для этого перейдите в « Файл»> «Создать»> «Динамический веб-проект» и введите имя проекта по своему желанию. Я назвал его «struts_validation».
Установите остальные параметры, как указано на следующем экране.
Выберите все параметры по умолчанию на следующих экранах и не забудьте установить флажок « Создать дескриптор развертывания web.xml ».
Это создаст для вас динамический веб-проект в Eclipse.
Настройка библиотек Struts2
Теперь, чтобы запустить приложение Struts2, вам нужно настроить инфраструктуру Struts2.
- Вам необходимо загрузить и установить Struts2 на свой компьютер.
- Загрузите последнюю версию двоичных файлов Struts2 отсюда.
- На момент написания этой статьи я скачал struts-2.5.30-min-lib.zip .
- После распаковки загруженного файла вы получите файлы внутри struts-2.5.30/lib следующим образом.
Теперь скопируйте все файлы из папки struts-2.2.3lib в папку вашего проекта WEB-INFlib . Вы можете сделать это, просто перетащив все файлы в папку WEB-INFlib . Теперь структура вашего проекта должна выглядеть так
Файл web.xml:
Создайте файл web.xml в папке webapp/WEB-INF и скопируйте следующий код в web.xml.
XML
<?xml version="1.0" encoding="UTF-8"?> xsi:schemaLocation="http://xmlns.jcp.org/xml/ns/javaee id="WebApp_ID" version="4.0"> <display-name>struts_validation</display-name> <welcome-file-list> <welcome-file>index.jsp</welcome-file> </welcome-file-list> <filter> <filter-name>struts2</filter-name> <filter-class>org.apache.struts2.dispatcher.filter.StrutsPrepareAndExecuteFilter</filter-class> </filter> <filter-mapping> <filter-name>struts2</filter-name> <url-pattern>/*</url-pattern> </filter-mapping></web-app> |
Файл index.jsp:
Нам нужен файл JSP для отображения окончательного результата, эта страница будет вызываться платформой Struts 2, где будет вызываться предопределенное действие, и это сопоставление определено в файле struts.xml. Итак, теперь мы создадим index.jsp в папке webapp в вашем проекте eclipse. Чтобы создать файл JSP, щелкните правой кнопкой мыши папку веб -приложения в проводнике проекта и выберите « Создать» > «Файл JSP» .
Теперь скопируйте следующий код в файл index.jsp.
HTML
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html><html><head><meta charset="UTF-8"><title>Login</title><s:head /></head><body bgColor="lightGreen"> <s:form action="Login"> <s:textfield name="userName" label="User Name" placeholder="Default "Sanjyot""/> <s:password name="password" label="Password" /> <s:textfield name="phoneNumber" label="Phone Number" placeholder="10 digit phone number"/> <s:textfield name="email" label="Email" type="email" /> <s:submit value="Login" /> </s:form></body></html> |
Префикс <%@taglib uri=”/struts-tags”=”s” %> — это директива, сообщающая контейнеру сервлетов, что на этой странице будут использоваться теги Struts2, и этим тегам будет предшествовать s. Тег s:form содержит все элементы формы. Когда пользователь нажимает кнопку «Войти», запрос перенаправляется в класс действий «Вход».
Файл welcome.jsp:
Создайте файл welcome.jsp в папке webapp и скопируйте следующий код в файл welcome.jsp.
HTML
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><%@taglib uri="/struts-tags" prefix="s" %><!DOCTYPE html><html><head> <meta charset="UTF-8"> <title>Login Successful</title></head><body> <h3> Congratulations! You have logged in successfully.</h3> <h4> Welcome <s:property value="userName"/>!!! </h4></body> |
Класс действия: файл Login.java
Наш класс Login расширяет ActionSupport. Хорошо расширить класс ActionSupport, поскольку он обеспечивает реализацию по умолчанию для большинства распространенных задач. Создайте класс Login.java и скопируйте следующий код в Login.java.
Java
package com.SanjyotPanure.struts2;import com.opensymphony.xwork2.ActionSupport; public class Login extends ActionSupport { private String userName; private String password; private String phoneNumber; private String email; public String execute() { return SUCCESS; } 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; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public void validate() { if (getUserName().length() == 0) { addFieldError("userName", "UserName is required"); } else if (!getUserName().equals("Sanjyot")) { addFieldError("userName", "Invalid User"); } if (getPassword().length() == 0) { addFieldError("password", getText("Password is required")); } if (getPhoneNumber().length() == 0) { addFieldError("phoneNumber", getText("Phone Number is required")); } else if (!(getPhoneNumber().length() == 10)) { addFieldError("phoneNumber", "Enter 10 digit phone number"); } if (getEmail().length() == 0) { addFieldError("email", getText("Email is required")); } }} |
Файл struts.xml:
Нам нужно сопоставление между URL-адресом и сопоставлением действий. В файле struts.xml класс Login и файл welcome.jsp сопоставляются друг с другом. Сопоставление сообщает платформе Struts 2, какой класс будет реагировать на действие пользователя (URL-адрес), какой метод этого класса будет выполняться и какое представление отображать на основе результата String, возвращаемого этим методом. Итак, теперь мы создадим файл struts.xml в папке webapp/WEB-INF . Скопируйте следующий код в struts.xml:
XML
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"<struts><constant name="struts.custom.i18n.resources" value="LoginAction" /> <package name="default" extends="struts-default" namespace="/"> <action name="Login" class="com.SanjyotPanure.struts2.Login" > <result name="success">welcome.jsp</result> <result name="input">index.jsp</result> </action> </package></struts> |
Здесь наш пакет «по умолчанию» расширяет пакет «struts-default». При расширении пакета «struts-default» действие по умолчанию наследует набор перехватчиков, определенный в стеке по умолчанию. Пакет «struts-default» определен в файле struts-default.xml.
Как запустить проект?
Щелкните правой кнопкой мыши проект> запустить как> запустить на сервере
Если вы запускаете свой проект в первый раз, вы получите следующее приглашение:
Выход
Теперь разверните localhost и выберите свой сервер tomcat. После этого нажмите на следующий и закончить. Вы увидите веб-страницу, открытую в Eclipse IDE, например:
Все поля ввода обязательны для заполнения. Если вы попытаетесь отправить без ввода данных, вы получите следующий экран:
Номер телефона должен состоять из 10 цифр. Если вы введете неправильный номер телефона, вы получите следующий экран:
Имя пользователя по умолчанию — « Sanjyot », а пароль вы можете ввести любой. После того, как вы введете правильное имя пользователя, вы увидите следующий экран: