说到流程控制,我们就会想到分支、循环if 、else、for、while这些词语。任何一门编程语言都会包含这些功能。但Websharp的模板中却没有这些功能。有人就会抱怨,如果我要实现一些流程控制怎么办。
我们先来说模板中为什么不加入这些功能?其一就是为了是模板最简单化,模板最接近天然的HTML代码,也使模板最容易掌握,说白了就是一个HTML,你设计成什么样就是什么样。其二,我们把流程控制都放在Java代码中来实现,也即是把任何逻辑都放在java中来表现。
所以说,Websharp完全不需要流程控制,这样表现层和控制层可达到100%分离。下面举例来说明:
分支例子
如果当前时间小于12am则在页面上显示“上午好”,否则显示“下午好”,并且两者显示的字体颜色、大小不能一样。
1)根据要求,由于两者样式上不太一样,我们需要有两段不同HTML代码,可以用到模板块元素,我们设计的模板代码如下:
上午好
下午好
2)程序代码很简单:
.......
if(time<"12")
websharp.addBlock("block1");
else
websharp.addBlock("block2");
在此代码中,判断当前时间如果小于12am则创建block1,否则创建block2。在Webshap中,只有创建的block才会显示,否则隐藏。因此,首先模板中必须包含了所有可能的分支情况,其次分支的显示与否则由程序来控制了。
循环例子
在页面上输出从1到100这100个数字,如果是奇数则用黑色显示,如果是偶数则用红色显示。
循环用到了循环模板块元素(Loop Element),下面介绍实现:
1)创建模板。
{%i%}
2)程序代码。
......
for(int i=1;i<=100;i++)
{
ValueNode number=websharp.addLoop("number");
number.setValue("i",i);
if(i % 2==1) number.setValue("color","black");
else number.setValue("color","red");
}