我需要从WebApplicationContext
宏中获取春豆。我的尝试是执行以下操作:
<#macro categoryName category>
<#assign context=springMacroRequestContext.webApplicationContext>
<#assign lb=context.getBean("localizationBean")/>
<#assign pp=context.getBean("phraseProvider")/>
<#assign categoryName=pp.getPhrase(lb.getCategoryMnemo(category))/>
${categoryName}
</#macro>
但这是失败的。首先,如果我提供一个字符串形式的bean名称getBean
返回必须以某种方式强制转换的Object,那么我也尝试提供完全合格的类名称,但freemarker不喜欢它。那怎么办呢?
我对这个问题的解决方案是从控制器传递一个bean,然后在宏中使用它。
我也建议您User
在域中是否有实体来创建相关的宏文件,例如user-macroses.ftl
放置所有与用户相关的宏的位置。
并且,如果在某些宏中需要调用某些spring bean方法,则应创建一个bean,就像UserFtlMacroses
在其中放置与用户相关的逻辑一样,因此在视图上调用某些宏时,<@user.doSomething/>
这些宏doSomething
将从中调用方法UserFtlMacroses
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句