Websharp 9 - 流程控制

来源:互联网 发布:简易平面广告制作软件 编辑:程序博客网 时间:2024/05/23 19:19

说到流程控制,我们就会想到分支、循环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");

}