我在我的应用程序中创建了一个自定义标记lib类,如下所示。
class CustomTagLib {
static defaultEncodeAs = [taglib:'html']
static encodeAsForTags = [tagName: [taglib:'html'], otherTagName: [taglib:'html']]
def selectList = { attrs ,body ->
try{
String servName=attrs.service
String servMethod=attrs.method
ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(session.getServletContext())
def myservice=ctx."${servName}"
// def myservice = Holders.getApplicationContext().getBean( servName );
attrs.from = myservice.invokeMethod(servMethod,null);
out << g.select( attrs )
}catch(Exception e){
println("Exception in CustomTagLib in method selectList:"+e)
}
}
}
请提出任何解决此问题的建议。
答案 0 :(得分:1)
您可以尝试将渲染代码添加到模板中,例如
def from = myservice.invokeMethod(servMethod,null);
out << render( template: "/templates/dropdown",
model: [from: from] )
然后在/views/templates/_dropdown.gsp
<g:select from="${from}" />
您当然可以向模型传递更多参数。