Freemarker渲染视图采用的是一个 模型+数据 = 页面 的方式,这也是模板渲染引擎的通用模式,对于freemarker渲染页面的时候一些特殊的数据格式转换、随机数获取等需求,如果很难通过freemarker本身的标签完成,可以通过调用java静态方法来完成。前提是这个方法必须是静态。允许传递参数。
实现这个需求,使用的便是freemarker的BeansWrapper这个类,他借用TemplateHashModel可以从web容器中获取指定类名的bean并通过传统的如spring的ModelMap.setAttribute方式传递给ModelMap,然后页面可以根据指明的名称,使用$符号调用即可。
举个例子: