Пример текстового поля Struts
Загрузите этот пример текстового поля Struts -Struts-TextBox-Example.zip
В этом примере Struts вы узнаете, как создать поле ввода текстового поля HTML с тегом Struts<html:text>, проверить текстовое поле с помощьюActionForm, отобразить сообщение об ошибке с помощьюActionErrors, а также ресурс сообщения на странице JSP.
1. Структура папок
Это окончательная структура проекта, созданная Maven. Пожалуйста, создайте соответствующие папки.

2. Класс действий
Создайте класс Action, ничего не делайте, только перешлите запрос.
UserAction.java
package com.example.common.action;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.Action;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
public class UserAction extends Action{
public ActionForward execute(ActionMapping mapping,ActionForm form,
HttpServletRequest request,HttpServletResponse response)
throws Exception {
return mapping.findForward("success");
}
}
3. Файл свойств
Создайте файл свойств и объявите сообщения об ошибках и пометите их.
Common.properties
#common module error message error.common.name.required = Name is required. #common module label message label.common.name = UserName label.common.button.submit = Submit label.common.button.reset = Reset
4. ActionForm
Создайте ActionForm, примите имя пользователя и подтвердите его в методе validate (). Если имя пользователя пусто, получите сообщение об ошибке из указанного выше файла свойств и добавьте его как ключ «common.name.err» в ActionErrors, позже будет использовать это имя «common.name.err» для отображения сообщения об ошибке в JSP. .
UserForm.java
package com.example.common.form;
import javax.servlet.http.HttpServletRequest;
import org.apache.struts.action.ActionErrors;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.ActionMessage;
public class UserForm extends ActionForm{
String username;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
@Override
public ActionErrors validate(ActionMapping mapping,
HttpServletRequest request) {
ActionErrors errors = new ActionErrors();
if( getUsername() == null || ("".equals(getUsername()))) {
errors.add("common.name.err",
new ActionMessage("error.common.name.required"));
}
return errors;
}
@Override
public void reset(ActionMapping mapping, HttpServletRequest request) {
// reset properties
username = "";
}
}
5. Страница JSP
Используйте HTML-тег Struts<html:text> для создания поля ввода текстового поля HTML. Сообщение метки объявлено в приведенном выше файле свойств, вы можете получить его напрямую через<bean:message key=”label_name” />.
Сообщение об ошибке может отображаться двумя способами:
-
Показать все сообщения об ошибках
-
Отобразить указанное сообщение об ошибке, указав ключ сообщения об ошибке, объявленный в ActionErrors.
login.jsp
Struts html:text example
:
Отображение ввода текстового поля.
welcome.jsp
Welcome
6. struts-config.xml
Создайте файл конфигурации Struts и свяжите все вместе.
В атрибутах тегов действий:
-
путь = веб-путь, к которому вы получаете доступ
-
type = ваш класс действий
-
имя = форма вашего действия
-
validate = true приведет к тому, что ActionForm вызовет метод validate () для проверки формы
-
input = если проверка false, куда пересылать?
Вы должны включить свой файл свойств в файлstruts-config.xml, чтобы Struts узнал о вашем пользовательском сообщении о ресурсе.
7. web.xml
Последний шаг, создайте web.xml для интеграции со структурой Strut.
Maven Struts Examples action org.apache.struts.action.ActionServlet config /WEB-INF/struts-config.xml 1 action *.do
Доступ к нему

Если пользователь не заполнил текстовое поле и не нажал кнопку отправки, появится сообщение об ошибке.

Если пользователь заполнит текстовое поле и нажмите кнопку отправки.

Он передаст входное значение текстового поля на страницу приветствия и отобразит его.
