これは、ブロックとデリゲート コンポーネントを使用して実現できます。
明らかに、メソッドのロジックに取り組む必要がありますが、get...Block
何かを理解できるはずです。
この場合の静的構造は、レンダリングされる可能性のあるすべての埋め込みコンポーネントをマークアップで宣言する必要があるという事実を指します。その後、ロジックやその他のコンポーネントを使用して、何をどの順序でレンダリングするかを決定できます。
ジャバ:
public class MyPage
{
@Inject
public Block block1;
@Inject
public Block block2;
@Inject
public Block block3;
@Inject
public Block block4;
public Block getFirstBlock()
{
return caseA ? block1 : block4;
}
public Block getSecondBlock()
{
return caseA ? block2 : block3;
}
public Block getThirdBlock()
{
return caseA ? block3 : block2;
}
}
tml:
<...>
<t:block t:id="block1"><t:component1 /></t:block>
<t:block t:id="block2"><t:component2 /></t:block>
<t:block t:id="block3"><t:component3 /></t:block>
<t:block t:id="block4"><t:component4 /></t:block>
<t:delegate to="firstBlock" />
<t:delegate to="secondBlock" />
<t:delegate to="thirdBlock" />
</...>