beetl java例子_Beetl 模版引擎执行任意 Java 代码的方法

一. Beetl 介绍

网上没搜索到 Beetl 模版引擎执行任意 Java 代码的方法,所以顺手看下文档,顺便分享下方法。

下是来自官网

的简介:

Beetl是Bee Template Language的缩写,它绝不是简单的另外一种模板引擎,而是新一代的模板引擎,它功能强大,性能良好,超过当前流行的模板引擎。而且还易学易用。

二. 执行任意 java 代码

Beetl 默认的语句界定符为

Beetl 支持用type.new

创建一个对象实例,语法有点像javascript

var user = type.new("com.xx.User");

Beetl 支持用 java 代码风格来调用属性和对象,例如:

${@user.getMaxFriend(“lucy”)}

${@com.xxxx.constants.Order.getMaxNum()}

var max = @com.xxxx.constants.Order.MAX_NUM;

var c =1;

var d = @user.getAge(c);

%>

结合以上三个小知识,就可以利用type.new

创建一个bcel ClassLoader

的实例,然后使用实例加载任意代码,并实例化代码,执行任意的自定义代码。当然,肯定还有其他方法,不过找到一个通用的就行了,暂时不需要深挖。

下面是一个使用Runtime exec

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值