본문 바로가기
웹개발지식쌓기

[back] ViewResolver decorator 오류

by developer_j 2024. 1. 8.
728x90
반응형

개발의 참맛 중 하나는

삽질하다가 해결됐을 때의 도파민이 아닐 까.....흑흑

 

아무튼 나는

- 사이트 구조의 통일성을 위해, 공통 헤더/푸터 파일이 있고, 기본 레이아웃에서 해당 헤더/푸터를 불러오도록 한 상황

- 위의 구조로 만든 레이아웃 파일이 모든 페이지에 적용되도록 web.xml과 decorators.xml 에 decorators 옵션값 세팅

 <!-- web.xml -->
 ...
    <filter>
        <filter-name>sitemesh</filter-name>
        <filter-class>
            com.opensymphony.module.sitemesh.filter.PageFilter
        </filter-class>
    </filter>

    <filter-mapping>
        <filter-name>sitemesh</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
...
<!-- decorators.xml -->
<decorators defaultdir="/decorators">
	<decorator name="mainLayout" page="mainLayout_decorator.jsp">
        <pattern>/*</pattern>
    </decorator>
    ...
</decorators>

 

을 했으나 url을 호출해도 decorators 파일이 적용되지 않았다.

 

하루정도 버리고 해결했는데 ..

@Controller
public class TestController extends BaseController{
    
	@RequestMapping(value = "/testPage", produces = "text/html; charset=UTF-8")
	public String testPage(HttpServletRequest request) {
		return "test/testPage"; // --> 여기
	}
}

 

이런식으로 return 문의 제일 앞에 "/" 를 붙여주지 않았기 때문이엇따..ㅠㅠ 

return 문을 return "/test/testPage"; 로 바꿔주니 제대로 작동되었다.

끝!

 

 

 

+) 위의 오류와는 상관없지만, siteMesh 관련 공부 참조글

https://javacan.tistory.com/entry/131

 

SiteMesh를 이용한 웹 페이지 데코레이션

SiteMesh를 이용하여 웹 페이지의 레이아웃을 처리하는 방법을 살펴본다. SiteMesh의 동작 방식과 설치 웹 어플리케이션을 구성하고 있는 웹 페이지들은 대부분은 페이지 레이아웃이 동일하게 구성

javacan.tistory.com

 

728x90
반응형