2013-11-15 53 views
0

我有一個標準mvc設置的Roo應用程序。在Roo中爲未捕獲的異常處理程序設置響應狀態

如果我從我的控制器中拋出異常,我會在客戶端獲得很好的堆棧跟蹤和狀態碼200。

我發現它是由錯誤處理頁面中定義爲web.xml

<error-page> 
    <exception-type>java.lang.Exception</exception-type> 
    <location>/uncaughtException</location> 
</error-page> 

uncaughtException.jspx是:

<div xmlns:c="http://java.sun.com/jsp/jstl/core" xmlns:fn="http://java.sun.com/jsp/jstl/functions" xmlns:util="urn:jsptagdir:/WEB-INF/tags/util" xmlns:spring="http://www.springframework.org/tags" xmlns:jsp="http://java.sun.com/JSP/Page" version="2.0"> 
    <jsp:directive.page contentType="text/html;charset=UTF-8" /> 
    <jsp:output omit-xml-declaration="yes" /> 
    <spring:message var="title" code="error_uncaughtexception_title" htmlEscape="false" /> 
    <util:panel id="title" title="${title}"> 
    <h2>${fn:escapeXml(title)}</h2> 
    <p> 
     <spring:message code="error_uncaughtexception_problemdescription" /> 
    </p> 
    <c:if test="${not empty exception}"> 
     <p> 
     <h4> 
      <spring:message code="exception_details" /> 
     </h4> 
     <spring:message var="message" code="exception_message" htmlEscape="false" /> 
     <util:panel id="_message" title="${message}" openPane="false"> 
      <c:out value="${exception.localizedMessage}" /> 
     </util:panel> 
     <spring:message var="stacktrace" code="exception_stacktrace" htmlEscape="false" /> 
     <util:panel id="_exception" title="${stacktrace}" openPane="false"> 
      <c:forEach items="${exception.stackTrace}" var="trace"> 
      <c:out value="${trace}" /> 
      <br /> 
      </c:forEach> 
     </util:panel> 
     </p> 
    </c:if> 
    </util:panel> 
</div> 

如何改變性反應的代碼來的東西比200有什麼不同?

這是可能的以某種方式將其設置在uncaughtException.jspx

回答

0

通過設置defaultStatusCode解決此問題org.springframework.web.servlet.handler.SimpleMappingExceptionResolverwebmvc-config.xml

例子:

<bean class="org.springframework.web.servlet.handler.SimpleMappingExceptionResolver" p:defaultErrorView="uncaughtException"> 
    <property name="exceptionMappings"> 
     <props> 
      <prop key=".DataAccessException">dataAccessFailure</prop> 
      <prop key=".NoSuchRequestHandlingMethodException">resourceNotFound</prop> 
      <prop key=".TypeMismatchException">resourceNotFound</prop> 
      <prop key=".MissingServletRequestParameterException">resourceNotFound</prop> 
     </props> 
    </property> 
    <property name="defaultStatusCode"> 
     <value>500</value> 
    </property> 
</bean> 
+0

此錯誤的任何提示? '與元素類型「beans:bean」關聯的屬性「p:defaultErrorView」的前綴「p」未被綁定。 – zygimantus

相關問題