标题几乎描述了我的问题,我不想手动渲染每个模板,但不知道如何让它们自动渲染。我使用的是SpringBoot版本,其中velocity支持已经不存在了,我对这个版本一无所知 spring-velocity-support
来自apache的包。
我试过这个:
@GetMapping("/test")
fun test(context: VelocityContext) : Template {
context.put("test", "Hello World!")
return Velocity.getTemplate("views/templates/index.vm")
}
这是一个豆子:
@Bean("velocityEngine")
open fun getVelocityBean() : VelocityEngineFactoryBean {
val properties = Properties()
if (System.getenv("IS_LOCAL").toBoolean()) {
// load templates from file for instant-reload when developing
properties.setProperty(RuntimeConstants.RESOURCE_LOADERS, "file")
properties.setProperty(
RuntimeConstants.FILE_RESOURCE_LOADER_PATH,
"${System.getProperty("user.dir")}/api/src/main/resources/"
)
} else {
// load templates from jar
properties.setProperty(RuntimeConstants.RESOURCE_LOADERS, "class")
properties.setProperty(
"resource.loader.class.class",
"org.apache.velocity.runtime.resource.loader.ClasspathResourceLoader"
)
}
Velocity.init(properties) // For manual rendering
val velocity = VelocityEngineFactoryBean()
velocity.setVelocityProperties(properties)
return velocity
}
但这只是返回了一个(字面上)无休止的json,并抛出了一个 JsonMappingException
因为无限递归
暂无答案!
目前还没有任何答案,快来回答吧!