0

我需要这方面的帮助,请查看我的代码:

@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>

页面erro-generico.jsp正在加载,因为如果我在其中输入错误代码,Eclipse 控制台上将显示错误。

问题是:页面没有显示,实际页面一直显示在浏览器上,甚至 URL 都没有改变。

有什么问题?

4

1 回答 1

0

问题是正在使用的视图解析器与 Tiles 不兼容,它只适用于纯 JSP。

可以按照以下说明为 Tiles 配置视图解析器 - 14.3.2。如何集成瓷砖

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>
于 2014-02-20T20:27:58.673 回答