- 1.5 if语法
// xx.mayaa
<m:if m:id="visible" test="${1 < 1}"/> // if通过test的值是否ture进行判定,判定是否渲染的内容和if并列处理,另外一些符号的写法:>:> <:< &:&
<m:write m:id="message" value="nihao"/>
// 执行结果
- 1.6 for语法(为避免死循环,上限为256次)
// xx.mayaa
<m:for m:id="loop"
init="${var i = 0}"
test="${1 < 5}"
after="${i++}"/> // for通过test的值是否ture进行判定,判定是否渲染的内容和if并列处理,init设置初始值,after为一个循环之后的处理
<m:write m:id="message" value="${i}nihao!<br>" escapeXml="false"/>
// 执行结果
0nihao!<br>
1nihao!<br>
2nihao!<br>
3nihao!<br>
4nihao!<br>
// 为了方便观察结果,增加了一个<br>换行,而为了让<br>输出到模板,需要指定escapeXml=false
-
1.7 forEach
forEach和for作用一样,但在处理java固有集合类对象比for使用,且for是有上限的,forEach把循环处理都隐藏起来了。
涉及参数items:要循环的对象,var:每次循环的对象,index:循环次数 -
1.8 m:attribute增加属性
一般用作echo内的属性设置,当value指定为null(非value=""),则删除该元素的属性。
// xx.html
<html>
<body>
<input type="text" value="dd" name="aa" id="button1" size="11"/>
</body>
</html>
// xx.mayaa
<?xml version="1.0" encoding="UTF-8"?>
<m:mayaa xmlns:m=http://mayaa.seasar.org>
<m:echo m:id="button1">
<m:attribute name="type" value="button"/> // 此处会替换xx.html中input的type属性的值
<m:attribute name="value" value="逃之夭夭灼灼其华"/>
<m:attribute name="size" value="${null}"/> // 此处会删除xx.html中input的size属性
// <m:attribute name="value" value="${getValue().toStr()}"/> // 如果需要js方法,需要${js方法}这样操作,如果需要变量也如此操作
</m:echo>
</m:mayaa>
// 执行结果
<html>
<body>
<input type="button" value="dd" name="逃之夭夭灼灼其华" id="button1"/>
</body>
</html>
// 另外在echo中如果要获取元素的属性值,可通过name="属性名" value=" ${属性名}"获取
例子:
// xx.html
<input id="ipt" value="3" />
// xx.mayaa
<m:echo m:id="ipt">
<m:attribute name="value" value="${new Number(value) + 2}"/> // 由于属性的值都是字符串,需要转Number类型进行加法计算
</m:echo>
// 执行结果
<input id="ipt" value="5"/>
- 1.9 exec
exec用于脚本执行,附带属性script(执行的js,写在${})和src(js路径,相对路径,绝对路径)都存在的情况,src优先。
// xx.html
<div id="loop">
<div id="evenodd">
<span id="value">11</span>
</div>
</div>
// xx.mayaa
<m:for m:id="loop" init="${var i = 1}" test="${i < 6}" after="${i+=1}"/>
<m:exec m:id="evenodd" replace="false" script="${var evenodd = (i % 2 == 0)? 'even': 'odd';}"/>
<m:write m:id="value" value="${i+':'+evenodd}"/>
// 执行结果
<div id="evenodd">1:odd</div>
<div id="evenodd">2:even</div>
<div id="evenodd">3:odd</div>
<div id="evenodd">4:even</div>
<div id="evenodd">5:odd</div>








网友评论