Struts2自定義404、500錯誤界面


Struts2自定義404、500錯誤界面

用盡各種辦法,最管用的還是下面這一種。

優點:

1、404、500都能正確跳轉。包括找不到Action、找不到ActionMethod、throw Exception、Throwable。

2、500可輸出錯誤信息。

3、與sitemesh整合沒有問題。

4、可替換Struts2和Tomcat的錯誤頁面。做到真正自定義。

配置:

Web.xml

<error-page>

<error-code>404</error-code>

<location>/error404.jsp</location>

</error-page>

<error-page>

<exception-type>java.lang.Throwable</exception-type>

<location>/error.jsp</location>

</error-page>

 

404頁面可為靜態的頁面,沒有錯誤信息,可自定義。

500頁面如下:

<%@ page language=”java” contentType=”text/html; charset=UTF-8″ pageEncoding=”UTF-8″%>

<%@ page isErrorPage=”true” import=”java.io.*”%>

<%@ taglib uri=”http://java.sun.com/jsp/jstl/core” prefix=”c” %>

<%@ taglib uri=”http://java.sun.com/jsp/jstl/fmt” prefix=”fmt” %>

<%@ taglib prefix=”s” uri=”/struts-tags”%>

Message:

<%=exception.getMessage()%>

StackTrace:

<%

StringWriter stringWriter = new StringWriter();

PrintWriter printWriter = new PrintWriter(stringWriter);

exception.printStackTrace(printWriter);

out.println(stringWriter);

printWriter.close();

stringWriter.close();

%>

以上頁面都可以自己美化。

———————–

自己還試過的方法有:

1、struts2的聲明式錯誤處理。

2、通過default-action-ref的作用來檢測找不到的action,從而跳轉到404頁面。

以上兩種方法都不好。第一種方式比較繁瑣,而且有些錯誤捕獲不到。第二種只能用於action,其他資源不能用。

<package name=”default” extends=”struts-default”>

<default-action-refname=”notFound”/>

 

<global-results>

<resultname=”error500″>/WEB-INF/pages/error500.jsp</result>

</global-results>

<global-exception-mappings>

<exception-mappingresult=”error500″exception=”java.lang.Exception”></exception-mapping>

</global-exception-mappings>

<actionname=”notFound”>

<result name=”success” type=”redirect”>

<param name=”location”>error404.jsp</param>

</result>

</action>

</package>

 

PS:多次事實證明,要解決技術問題,度娘還是不給力。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM