@闲大赋 你好,想跟你请教一个问题:
1 beetlsql里面怎么使用自定义方法? 按照demo里的操作方式,提示 “该方法未注册”呢 ! 郁闷!
收到收到,多谢老板!
代码生成用的模板跟beetlsql不一样,因此,你需要用代码生成的GroupTemplte
SourceGen.gt.regtisterFunction("xxx",new YourFunction())
然后再调用sqlManager.genxxx 方法生成代码
package com.xxx; import org.beetl.core.Context; import org.beetl.core.Function; public class YearFunction implements Function { public String call(Object[] paras, Context ctx) { return "2015"; } }
上面是按照文档写的function,开始时不叫YearFunction,包名也不叫xxx,不要鄙视我。
FN.db.year=com.xxx.YearFunction
这是放在src/main/resources 下的 btsql-ext.properties 里面的配置内容
package ${package}; ${imports} /* * ${comment} * gen by beetlsql ${date(),"yyyy-MM-dd"} */ public class ${className} ${!isEmpty(ext)?"extends "+ext} { @for(attr in attrs){ @if(!isEmpty(attr.comment)){ private ${attr.type} ${attr.name} ;//${attr.comment} @}else{ private ${attr.type} ${attr.name} ; @} @} @for(attr in attrs){ @db.year(); @} }
这是模板文件,调用了那个方法,期望是打印出attrs.size~个2015,可实际上却打印了该方法未注册...
package com.test; import java.math.*; import java.util.Date; import java.sql.Timestamp; /* * * gen by beetlsql 2016-05-14 */ public class User { private Integer id ; private Integer age ; private Integer roleid ;//用户角色 private String name ; private String username ;//用户名称 private Timestamp date ; <html><head><title>beetlException</title><style><!-- *{margin:0;padding:0}.main{position:absolute;margin:auto;width:100%;z-index:9999999999999999999;}H1{font-family:Consolas,Arial,sans-serif;color:white;background-color:#a0a0a0;font-size:24px;padding-left:10px}H3{font-family:Consolas,sans-serif;color:#333;font-size:13px;font-weight:lighter;margin-top:5px;font-style:italic}BODY{font-family:Consolas,Arial,sans-serif;color:black;background-color:white}xmp{margin:auto;overflow:auto;width:100%;display: block;white-space: pre-wrap;font-family:simsun,sans-serif;background:white;color:black;font-size:13px;font-weight:lighter;color:#666;line-height:25px;}A{color:black}A.name{color:black}HR{color:#525d76}.t1{margin-top:0;}a.powered:hover{color:#dd1122}--></style></head><body><div class='main'><h1>>>该方法未注册(FUNCTION_NOT_FOUND):db.year 位于17行 资源:package ${package}; ${imports} /* * ${comment} * gen by beetlsql ${date(),"yyyy-MM-dd"} */ public class ${className} ${!isEmpty(ext)?"extends "+ext} { @for(attr in attrs){ @if(!isEmpty(attr.comment)){ private ${attr.type} ${attr.name} ;//${attr.comment} @}else{ private ${attr.type} ${attr.name} ; @} @} @for(attr in attrs){ @db.year(); @} } </h1><HR size='1' noshade='noshade' class='t1'><xmp style='padding-left:20px'>14|@} 15| 16|@for(attr in attrs){ 17|@db.year(); 18|@} 19|} </xmp><HR size='1' noshade='noshade'><h3><a href="http://ibeetl.com" class="powered">Powered by ibeetl.com</a></h3><div></body></html>
具体点
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
暂无简介
文章 0 评论 0
接受
发布评论
评论(5)
收到收到,多谢老板!
代码生成用的模板跟beetlsql不一样,因此,你需要用代码生成的GroupTemplte
SourceGen.gt.regtisterFunction("xxx",new YourFunction())
代码生成用的模板跟beetlsql不一样,因此,你需要用代码生成的GroupTemplte
然后再调用sqlManager.genxxx 方法生成代码
上面是按照文档写的function,开始时不叫YearFunction,包名也不叫xxx,不要鄙视我。
这是放在src/main/resources 下的 btsql-ext.properties 里面的配置内容
这是模板文件,调用了那个方法,期望是打印出attrs.size~个2015,可实际上却打印了该方法未注册...
具体点