복붙노트

[SPRING] Spring / MVC 3.0 앱에서 타일이있는 일반적인 오류 페이지 템플릿을 어떻게 만들 수 있습니까?

SPRING

Spring / MVC 3.0 앱에서 타일이있는 일반적인 오류 페이지 템플릿을 어떻게 만들 수 있습니까?

보기로 타일을 사용하는 스프링 MVC / 3.0 응용 프로그램을 가지고 있지만 잘 작동하지만 오류 페이지에서도 타일을 사용하는 방법을 알 수 없습니다.

나는 내 web.xml에있다.

<error-page>
  <error-code>404</error-code>
  <location>/WEB-INF/error/404.jsp</location>
</error-page>

타일을 사용하지 않는 일반 뷰로는 잘 작동하지만 뷰 이름 중 하나로 위치를 변경하면 뷰가 발견되지 않고 일반 오류 페이지가 렌더링됩니다.

뷰의 내 tiles.xml 파일에는 다음 정의가 포함되어 있습니다.

<definition name="404" extends="standardLayout">
  <put-attribute name="body" value="/WEB-INF/error/404.jsp" />
</definition>

다음과 같이 봄을 통해 타일을 구성합니다.

<bean id="tilesConfigurer" class="org.springframework.web.servlet.view.tiles2.TilesConfigurer">
  <property name="definitions">
    <list>
      <value>/WEB-INF/**/tiles.xml</value>
    </list>
  </property>
</bean>

이 모든 것이 봄 자체에서 오는 것이 아니기 때문에 나는 의심하고 있습니다.

해결법

  1. ==============================

    1.web.xml에 "layout"jsp를 추가해야합니다. 아래는 설명 코드입니다.

    web.xml에 "layout"jsp를 추가해야합니다. 아래는 설명 코드입니다.

    // Your web.xml should look like this:
    <error-page>
      <error-code>404</error-code>
      <location>/WEB-INF/error/layout-404.jsp</location>
    </error-page>
    
    
    // Your layout-404.jsp should look like this:
    <%@page isELIgnored="false" %>
    <%@page contentType="text/html"%>
    <%@taglib uri="http://tiles.apache.org/tags-tiles" prefix="tiles" %>
    <tiles:insertDefinition name="404" />    
    
    
    // Your layout def should look like this:
    <definition name="404" extends="standardLayout">
      <put-attribute name="body" value="/WEB-INF/error/404.jsp" />
    </definition>
    
  2. ==============================

    2.타일에서 오류 템플릿을 정의하는 것이 더 간단 할 것입니다.

    타일에서 오류 템플릿을 정의하는 것이 더 간단 할 것입니다.

    <definition name="error/*" template="/views/error/layout.jsp">
        <put-attribute name="body" value="/views/error/{1}.jsp" />
    </definition>
    

    Spring MVC로 처리한다.

    @ExceptionHandler({ MissingResourceException.class })
    @ResponseStatus(HttpStatus.NOT_FOUND)
    public String handleMissingResource(Exception e) {
        return "error/404";
    }
    

    이 경우 web.xml에 오류 페이지를 추가 할 필요가 없으며 오류 페이지 당 하나의 .jsp 파일로 충분합니다.

  3. from https://stackoverflow.com/questions/3552515/how-do-i-have-common-error-page-templates-with-tiles-in-a-spring-mvc-3-0-app by cc-by-sa and MIT license