2014-02-20 96 views
0

正確的觀點我需要這方面的幫助,請看看我的代碼:ControllerAdvice用的ExceptionHandler和ModelAndView的不加載屏幕

@ControllerAdvice 
@EnableWebMvc 
public class GlobalExceptionController { 

    @ExceptionHandler(CustomGenericException.class) 
    public ModelAndView handleCustomException(CustomGenericException ex) { 

     // create the model and view with the tiles View pointing to error jsp page 
     ModelAndView model = new ModelAndView("pagina.erro"); 
     model.addObject("errCode", ex.getErrCode()); 
     model.addObject("errMsg", ex.getErrMsg()); 

     return model; 

    } 
... 

塊配置:

<definition name="pagina.erro" extends="baseLayout"> 
    <put-attribute name="titlepagina" value="Página de Erro" /> 
    <put-attribute name="body" value="/WEB-INF/jsp/error/erro-generico.jsp" /> 
</definition> 

在我的Spring配置XML我:

<bean 
    class="org.springframework.web.servlet.view.InternalResourceViewResolver"> 
    <property name="prefix"> 
     <value>/WEB-INF/jsp/</value> 
    </property> 
    <property name="suffix"> 
     <value>.jsp</value> 
    </property> 
</bean> 

頁埃羅-generico.jsp正在被加載,因爲如果我把一個錯誤的代碼放入它,錯誤會在eclipse控制檯上顯示。

問題是:頁面不是shwowing,實際頁面不斷顯示在瀏覽器上,甚至沒有URL更改。

什麼可能是錯的?

+0

是異常處理擊中,你可以發佈服務器日誌? –

+0

是的,異常處理程序的代碼正在被擊中,並且頁面正在執行,但沒有顯示,控制檯上沒有任何東西,我看到的唯一的東西是: Fev 20,2014 5:18:26 PM org.apache .jasper.compiler.TldLocationsCache tldScanJar 信息:至少有一個JAR針對頂級域名進行了掃描,但尚未包含任何頂級域名。爲此記錄器啓用調試日誌記錄以獲取已掃描但未找到TLD的JAR的完整列表。在掃描過程中跳過不需要的JAR可以縮短啓動時間並縮短JSP編譯時間。 –

回答

0

問題是,正在使用的視圖解析器與Tiles不兼容,它只適用於純JSP。

有可能按照以下說明配置Tiles的視圖解析器 - 14.3.2. How to integrate Tiles

bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer"> 
    <property name="definitions"> 
    <list> 
     <value>/WEB-INF/defs/general.xml</value> 
     <value>/WEB-INF/defs/widgets.xml</value> 
     <value>/WEB-INF/defs/administrator.xml</value> 
     <value>/WEB-INF/defs/customer.xml</value> 
     <value>/WEB-INF/defs/templates.xml</value> 
    </list> 
    </property> 
</bean> 

<bean id="viewResolver" class="org.springframework.web.servlet.view.UrlBasedViewResolver"> 
    <property name="viewClass" value="org.springframework.web.servlet.view.tiles2.TilesView"/> 
</bean> 
+0

我的spring-servlet.xml也是我用純JSP試過的,而不是用tile: ' \t <屬性名= 「viewClass類」 \t \t值= 「org.springframework.web.servlet.view.tiles2.TilesView」/> <豆ID = 「視圖解析器」 \t類=「org.springframework。 web.servlet.view.UrlBasedViewResolver「> \t \t ' –