@闲.大赋 你好,想跟你请教个问题:我设置了GroupTemplate中的setTempFolder(),也调用优化了,参数也指明要求保持源代码了,但是源代码总是在home目录下的.bee
哦,这个应该是在enableOptimize前设置,之后在设置就无效了
enableOptimize总是最后设置的一个方法,它要根据前面的设置来初始化系统
手册里没有提,我会尽快更新手册
######在指定的路径下生成了src,classes两个目录,但是就是没有java文件######我是在nableOptimize前设置,一样无效###### 应该是生效了,但有俩种情况导致没有生成class,一是预编译错误,就是某些情况不满足导致无法预编译,这情况很少见。系统以解释方式执行。
另外一种情况是预编译通常是在所有的全局变量类型都确定后才能预编译,你的页面也许比较复杂,要多运行几次才能生成 ######观察一下后台输出,如果后台有错误输出,提示信息类似“无法预编译,因为。。。原因,系统将解释方式执行”,这可能是碰上了无法预编译的情况。否则,不应该会出现编译class不成功情况######===== 变量访问
a=${a}
b=${b}
c=${c.f1}
========函数
${f1()}
${f2(1,2)}
${f3(3,4)}
=======格式
${a,f1="hhh"}
======= 判断
======= List循环
<%
var list1=["a","b","c","d"];
for(i in list1){
%>
${i_index}---${i_size}----${i}
<%}%>
====== Map循环
<%
var map1 = {x:"x",y:"y",z:"z"};
for(j in map1){
%>
${j_index}---${j_size}----${j}
${j.key}---${j.value}
<%}%>
=========== 测试结束====================
上面是我的模板,第二次运行的时候,就出现了异常:
Exception in thread "main" java.lang.NullPointerException: 符号i_size未发现 at org.bee.tl.core.Context.getVar(Context.java:226) ###### 个人认为不需要执行多几次判断确定类型,可以直接生成代码(或者可以作为优化选项),可能需要先判断类型才能更生成代码,是为了支持表达式。
public static Object get(Object obj,Object name){ if(obj instanceof Map){ return ((Map)obj).get(name); }else { //先获得getName方法 if(name instanceof String){ String n = (String)name; Method method = findMethod(obj,"get"+n.substring(0,1).toUpperCase()+n.substring(1)); if(method!=null){ return method.invoke(obj); } } //如果还没有,获得get方法 method = findMethod(obj,"get"); if(method!=null){ return method.invoke(obj,new Object[]{name}); } //方法不存在 return null; } }
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。