2012-07-29 5 views
0

Tapestry 3에서 Tapestry 5로 전환 중입니다. 일부 주제에 대해 약간 혼란 스럽습니다. 은 태피 3에서는 액세스 할 수있다 페이지 요소/예컨대하여 동일한 페이지에 사용되는 다른 성분의 성질 : 다음 Tapestry 5 페이지에 사용 된 다른 구성 요소의 페이지 구성 요소/속성에 액세스 중

myMenu

<span jwcid="@RenderBlock" block="ognl:page.components.myMenu"/> 
이미 HTML 페이지에 정의되어있다 :

<span jwcid="[email protected]"> 
    <span jwcid="@MyMenu"/> 
<span/> 

MyMenu 구성 요소가 자체 파일에 정의되어 있습니다.

Tapestry 5에서 어떻게 동일한 작업을 수행 할 수 있습니까?

도움 주셔서 감사합니다.

블록 : 푸

컴포넌트 파라미터 바인딩 : 바 t와 컴포넌트 파라미터 바인딩 : ID = "바"

너머

답변

0

태피스트리 (5)는이 목적을 위해 특수 결합 프리픽스들을 갖는다 즉, @Inject를 사용하여 Block 또는 Component를 삽입하고 해당 주입에 대한 속성을 노출 할 수 있습니다.

과 같이 보일 수 있습니다 귀하의 예 : 그들은 모두 같은 템플릿에 정의되어 가정

<t:delegate to="block:mymenu"/> 

... 

<t:block id="mymenu"> ... </t:block> 

을; 그렇지 않으면 매개 변수 또는 속성을 함께 묶어서 정렬해야합니다.

+0

안녕하세요. 답변 감사합니다. 거의 완료되었습니다. 페이지를 표시하기 전에 필요한 블록이 이미 페이지에 있는지 확인하면됩니다. Tapestry 3에서는'page.components.myMenu! = null'을 통해이 작업을 수행했습니다. –

+0

ComponentResources를 확인하십시오. 필요한 메소드가 있어야합니다. –

+0

Hello는'resources.getPage(). getComponentResources(). getBlock ("MyMenu");를 사용하여 요청을 구현합니다. 고맙습니다. –

관련 문제