2013-12-07 29 views
2

在一個Struts 2應用程序的行動做什麼漂亮的屏幕,所以我已經添加在我的struts.xmlStruts 2的當用戶在用戶將不與您的任何行動的有關一個<code>java.lang.NullPointerException</code>出現</p> <p>在這些情況下,我想顯示的URL中插入一個不存在

<global-exception-mappings> 
    <exception-mapping exception="java.lang.NullPointerException" result="exception"/> 
</global-exception-mappings> 

<global-results> 
    <result name="exception">/WEB-INF/jsp/exception.jsp</result> 
</global-results> 

但它不起作用。我也嘗試沒有成功

<action name="exception"> 
    <result>/WEB-INF/jsp/exception.jsp</result> 
</action> 

所以,我開始覺得所有的URL必須與動作相對應,否則就沒有機制,當用戶插入不對應的URL處理這些情況任何行動(所以這個機制是爲了處理由你現有的一個行爲引起的NullpointerException,而不是一個不存在的行爲)。

回答

3

在這裏你去:如果沒有找到匹配

<default-action-ref name="index"/> 

這個動作將被調用。

我在我所有的應用程序中都使用它來避免日誌中不需要的錯誤/警告。

Documentation

+0

明確這就是我想要的。謝謝! – leccionesonline

+0

@leccion您的歡迎 –

1

其實異常由exception攔截這是在defaultStack第一個攔截器,它允許處理異常不僅發生在行動,而且在攔截器調用捕獲。

爲此,您已經定義了一個配置。

如果輸入的URL沒有映射到任何操作配置,通常調度程序會返回404錯誤代碼。如果之前得到的結果是NullPointerException,那麼它的項目配置有問題。

如果沒有堆棧跟蹤,很難說出發生了什麼。但是,如果您想要處理髮現未知URL的情況,而不是之前處理它的調度程序,那麼您應該查看this答案,以幫助您定義unknownHandler

閱讀關於支持的具有此功能的Struts版本的說明。

相關問題