Freemarker自定义标签+spring国际化所碰到的坑

最近在弄springmvc国际化,碰到一个问题,昨天下午两三个小时加上今天上午,最后终于在大佬同事的提示下知道了原因所在。


首先注意spring.ftl的这句话

Freemarker自定义标签+spring国际化所碰到的坑_第1张图片

这是freemarker的宏变量,由此可以看出springMacroRequestContext是一个对象,有没有觉得getmessage很熟悉了


这是freemarker自定义标签的代码

Freemarker自定义标签+spring国际化所碰到的坑_第2张图片Freemarker自定义标签+spring国际化所碰到的坑_第3张图片

因为自定义标签里没有springMacroRequestContext对象,所以调用<@spring.message code=""/>标签会报错,网上资料很少,

罪魁祸首就是

这个springMacroRequestContext所在的源码处,在Freemarker自定义标签+spring国际化所碰到的坑_第4张图片

这个put是一个map,后面的new RequestContext(request, response, getServletContext(), model)  才是关键,早上我打断点从走过好几次硬是没注意,真是一万只草泥马跑过,后来在大佬同事的点醒之下解决了问题,  还是都静下心看呀,不能急躁!!!

你可能感兴趣的:(Freemarker自定义标签+spring国际化所碰到的坑)