切换案例

切换案例

用Tapestry的如果组件一次只能测试一个条件。为了区分多种情况,您必须在页面模板中编写复杂的嵌套if/else结构,并为页面类中的每个测试都有一个checker方法。

在必须区分多个案例的情况下代表组件。它将渲染委托给其他组件,例如阻止。对于每个案例,基本上都将内容包装在阻止默认情况下不会呈现。然后在页面上放置一个Delegate组件,并将其指向页面类中的一个方法,该方法将决定应该呈现哪些块。

例如,假设有一个用例,您想要区分4个用例,并且您有一个名为哪种情况这应该进行测试。页面模板如下所示:

SwitchMe.tml开关
<html xmlns:t=“http://tapestry.apache.org/schema/tapestry_5_4.xsd"><body><h1>交换机</h1><t:委托给=“case”/><t:block t:id=“case1”>这是案例1的内容。</t:block><t:block t:id=“case2”>这是案例2的内容。</t:block><t:块t:id=“case3”>这是案例3的内容。</t:block><t:block t:id=“case4”>这是案例4的内容。</t:block></body></html>

你可以看到代表组件的参数绑定到页面类的case属性。因此,在页面类中,您有一个获取案例()方法,该方法负责告诉代表组件应该呈现哪个组件。为此,我们向在页面模板中定义的块}进入页面类并返回相应的{{Block在中获取案例()方法。

SwitchMe.java交换机
公共类SwitchMe{@坚持private int whichCase;@注入私人街区案例1、案例2、案例3、案例4;公共对象getCase(){开关(whichCase){案例1:返回案例1;案例2:返回案例2;案例3:返回案例3;案例4:返回案例4;违约:返回null;}}}

切换愉快!