2014-02-20 93 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 ' –