Страница ошибок в любом приложении очень важна. Он сообщает пользователю о проблеме и показывает ему описание ошибки. Некоторые приложения также отображают код ошибки, чтобы пользователь мог упомянуть код ошибки при возникновении инцидента с группой поддержки. Это помогает быстрее идентифицировать проблему, и иногда даже поддержка Уровня 1 (L1) способна решить проблему.
Здесь мы собираемся обсудить, как кодирование страницы ошибки должно быть сделано в приложении struts2. Основной поток выглядит так, как будто пользователю показана страница HTML с различными полями. Пользователь вводит данные и нажимает кнопку отправки. Если есть какое-либо исключение сети / базы данных / файла, из-за которого операция не может быть выполнена успешно, должна появиться страница ошибки.
Обычно, если приложение находится в стадии разработки, и несколько разработчиков работают над разными модулями, они, как правило, создают свои собственные версии страниц ошибок (скажем, одна страница ошибок для поиска errorSearch.jsp и вторая для вставки записи employeeError.jsp).
Всего этого беспорядка можно избежать, используя одну страницу ошибок, которая ищет свойство компонента для отображения кода ошибки и сообщения об ошибке.
Вот пример приложения, чтобы продемонстрировать то же самое. Обратите внимание, это приложение только для демонстрационных целей. У нас есть функции поиска и вставки на главной странице (home.jsp). При нажатии на кнопку поиска вызывается метод executeAction класса SearchAction, который либо пересылается в success.jsp, либо fail.jsp (с сообщением об ошибке). Аналогично обстоит дело с функцией вставки записи.
struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC "-//Apache Software Foundation//DTD Struts Configuration 2.1//EN" "http://struts.apache.org/dtds/struts-2.1.dtd">
<struts>
<package name="default" extends="struts-default" >
<action name="index">
<result name="success">/home.jsp</result>
</action>
<action name="search" class="com.example.SearchAction">
<result name="success">/success.jsp</result>
<result name="failure">/failure.jsp</result>
</action>
<action name="insert" class="com.example.InsertAction">
<result name="success">/success.jsp</result>
<result name="failure">/failure.jsp</result>
</action>
</package>
</struts>
web.xml
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
<display-name></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>*.action</url-pattern>
</filter-mapping></web-app>
SearchAction.java
package com.example;
public class SearchAction {
private String searchText;
private String message;
public String getSearchText() {
return searchText;
}
public void setSearchText(String searchText) {
this.searchText = searchText;
}
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String execute() {
if(getSearchText().equals("guest")) {
return "success";
} else {
message="Unable to search";
return "failure";
}
}
}
InsertAction.java
package com.example;
public class InsertAction {
private String username;
private String message;
public String getMessage() {
return message;
}
public void setMessage(String message) {
this.message = message;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String execute() {
if( username != null && username.equals("guest")) {
return "success";
} else {
message="Unable to insert";
return "failure";
}
}
}
home.jsp
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
<s:form name="search" theme="simple" action="search">
Search user <s:textfield name="searchText" />
<s:submit value="Search" />
</s:form>
<s:form name="insert" theme="simple" action="insert">
Username <s:textfield name="username" />
<s:submit value="Insert Record" />
</s:form>
</body>
</html>
success.jsp
Operation was successful
failure.jsp
<%@taglib uri="/struts-tags" prefix="s" %>
<html>
<body>
<h3><s:property value="message" /></h3>
</body>
</html>
После развертывания для доступа к приложению, пожалуйста, используйте следующий URL:
http: // localhost: 8080 /
/login.action.
Вы также можете загрузить приложение в виде zip-файла, распаковать папку Test в папку webapps на сервере tomcat и использовать приложение. сразу по URL: http: // localhost: 8080 / Test / login.action . ZIP-файл приложения можно скачать по адресу: http://www.fileserve.com/file/3fqTNn7.
С http://extreme-java.blogspot.com/2011/05/showing-generic-error-page-in-struts2.html