如何在控制器中动态获取el表达式的值。方程式。
class ElController {
def index() = {
def a = "\${1 + 3}"
unknownElEvaluator(a) // ->"2"
....
}
}发布于 2012-07-09 19:47:12
您可以使用Groovy SimpleTemplateEngine来做到这一点:
import groovy.text.SimpleTemplateEngine
def binding = [:]
def a = "\${1 + 3}"
String rslt = new SimpleTemplateEngine().createTemplate( a )
.make( binding )
.toString()
assert rslt == '4' // 4 not 2 as in your question尽管很想知道你为什么要在控制器中这样做……
或者,您应该能够添加:
def groovyPagesTemplateEngine到您的控制器(或者最好是作为单独的服务类,因为您最终可能希望从代码中的多个位置执行此操作)
然后,从方法内部执行以下操作:
def binding = [:]
def a = "\${1 + 3}"
String rslt = new StringWriter().with { writer ->
groovyPagesTemplateEngine.createTemplate( a, 'myscript' )
.make( binding )
.writeTo( writer )
writer.toString()
}https://stackoverflow.com/questions/11394309
复制相似问题