2013-10-22 4 views
1

이 주제를 다시 한번 열어 주셔서 감사합니다. 그러나이 솔루션을 어디에서나 찾을 수는 없으므로 나를 미치게 만듭니다.타일 - 부모 레이아웃의 하위 특성에 액세스

child.html을

{% extends 'base.html' %} 

{% block title %}My Page Title{% endblock %} 

{% block content %} 
<p>My Page Body</p> 
{% endblock content %} 

base.html

<html> 
<head> 
    <title>{% block title %}{% endblock %}</title> 
</head> 
<body> 
{% block content %}{% endblock %} 
</body> 
</html> 

:

나는 내가 지금처럼 레이아웃을 확장 할 수 있습니다 장고와 같은 템플릿 시스템에서 온 Tiles에서는 비슷한 것을하고 싶습니다. 여기서 나는 자식 템플릿에서 페이지의 제목을 설정할 수 있습니다. 내 자식 템플릿에 <tiles:putAttribute />을 사용해 보았지만 부모 템플릿에 전달되지 않았습니다.

타일이 맨 아래에서 위쪽으로 템플릿을 처리하지 않습니까? 나는 스프링 메시지 나 Tiles EL을 사용하여 많은 솔루션을 찾았지만, 이것들은 모두 컨트롤러 레이어에 페이지 제목을 설정해야합니다. 제 생각에 페이지 제목은 보기 레이어의 일부입니다.

템플릿을로드 할 때 동적 타일 정의를 사용하므로 각 페이지마다 별도의 타일 정의를 만드는 것이 중요하지 않습니다.

+0

나는 같은 종류의 솔루션을 찾고 있습니다. 이 문제를 해결할 수 있었습니까? 아니면 해결을 완료 했습니까? –

+0

타일을 사용하는 솔루션을 찾을 수 없었습니다. Thymeleaf (thymeleaf-layout-dialect와 함께)만을 템플릿 엔진으로 사용하는 방법을 찾고 있습니다. 다른 많은 동적 기능은 물론 이것을 허용합니다. – Mike

답변

0

부모 템플릿에서 특성을 사용하기 전에 하위 템플릿을 포함해야합니다. 이 경우에는 값을 requestScope에 넣고 tiles 속성 범위에 대해 걱정하지 않아도됩니다.

그렇지 않으면 일반적으로이 상황에서 좀 더 구성을 해체해야합니다.

예를 들어 상위 템플릿의 속성을 직접 작성하는 대신 다른 템플릿을 삽입 할 수 있습니다. 이 새 템플리트는 이미 가지고있는 다른 하위 템플리트와 유사한 구성을 가지며이 속성을 전달하려고 시도하지 않고 속성을 작성해야합니다.