java 绑定变量,基本用法 - 绑定变量的HTML标签 - 《Beetl 3 Java模板引擎中文文档》 - 书栈网 · BookStack...

绑定变量的HTML标签

对于html标签(参考上一节),Beetl还 支持将标签实现类(java代码)里的对象作为临时变量,被标签体引用。此时需要实现GeneralVarTagBinding (此类是Tag的子类) 该类提供另外3个方法 - void binds(Object… array) 子类在render方法里调用此类以实现变量绑定,绑定顺序同在模板中声明的顺序 - void bind(String name, Object value) 子类在render方法里调用此类以实现变量绑定,name是模板中声明的变量名,用此方法绑定不如binds更灵活,不再推荐 - Object getAttributeValue 获得标签的属性 - Map getAttributes 获得标签的所有属性publicclassTagSampleextendsGeneralVarTagBinding{

@Override

publicvoidrender(){

intlimit=Integer.parseInt((String)this.getAttributeValue("limit"));

for(inti=0;i

this.binds(i)

this.doBodyRender();

}

}

}

//在某处注册一下标签TagSample

//gt.registerTag("tag", TagSample.class);

如上例子,render方法将循环渲染标签体limit次,且每次都将value赋值为i。我们再看看模板如何写的

${value}

#tag>

类似于常规html标签,需要在标签的最后的属性定义后面加上分号 ";" 此分号表示这个是一个需要在标签运行时需要绑定变量的标签。后跟上要绑定的变量列表,如上例只绑定了一个value变量,如果需要绑定多个变量,则用逗号分开,如var1,var2 上。如果后面没有变量列表,只有分号,则默认绑定到标签名同名的变量上. 如果标签有namesapce,则默认绑定订的变量名不包含namespace

注意,由于标签使用因为太长可能换行或者是文本格式化导致换行,目前beetl只允许在属性之间换行,否则,将报标签解析错误。

默认情况下,如果标签属性出现了var(可以通过配置文件改成其他属性名),也认为是绑定变量的标签,如上面的例子也可以这么写

${value}

#tag>

var属性的值可以是个以逗号分开的变量名列表,如var="total,customer,index"

通过var定义的变量只能在标签体中使用,如果想定义一个能在标签体外能使用的变量,需要使用export

${value}var 和 export 这个属性名代表了特殊意义,用于申明变量。也可以通过配置使用其他属性名字HTML_TAG_BINDING_ATTRIBUTE=var,export

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值