Статьи

Отображение страницы с общей ошибкой в ​​веб-приложении Struts2

Страница ошибок в любом приложении очень важна. Он сообщает пользователю о проблеме и показывает ему описание ошибки. Некоторые приложения также отображают код ошибки, чтобы пользователь мог упомянуть код ошибки при возникновении инцидента с группой поддержки. Это помогает быстрее идентифицировать проблему, и иногда даже поддержка Уровня 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