FreeMarKer配置全局自定义标签
之前使用标签都是直接在Contorller里面进行传递
如下代码
model.addAttribute("indexOf",new StringIndexOf());如果要进行全局设置,只需要简单的两步
第一:在标签类上面添加注解Component
@Component("indexOf")
@Component("indexOf") public class StringIndexOf implements TemplateMethodModelEx {中间的引号可自定义
第二:在FreeMarKer里面进行配置
1,首先配置扫描包,注意,代码比如在FreeMarKer的上面,否则会获取不到
代码如下:
<context:component-scan base-package="com.freemarker.springmvc.util" />
2,在FreeMarKer里面配置freemarkerVariables
freemarkerVariables接收一个map,map是健值对形式
<entry key="indexOf" value-ref="indexOf" />
FreeMarKer配置,全部代码如下
<!-- Freemarker配置 --> <bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer"> <property name="templateLoaderPath" value="/WEB-INF/template/default/" /> <property name="freemarkerSettings"> <props> <prop key="template_update_delay">0</prop> <prop key="default_encoding">UTF-8</prop> <prop key="number_format">0.##########</prop> <prop key="datetime_format">yyyy-MM-dd HH:mm:ss</prop> <prop key="classic_compatible">true</prop> <prop key="template_exception_handler">ignore</prop> <prop key="url_escaping_charset">UTF-8</prop> <prop key="locale">zh_CN</prop> <prop key="tag_syntax">auto_detect</prop> <prop key="whitespace_stripping">true</prop> <prop key="object_wrapper">freemarker.ext.beans.BeansWrapper</prop> </props> </property> <property name="freemarkerVariables"> <map> <entry key="indexOf" value-ref="indexOf" /> </map> </property> </bean>这样,我们打开任意一个文件,都可以使用这个indexOf标签了
使用方法如下
${indexOf("met", "something")} ${indexOf("foo", "something")}
爆款云服务器s6 2核4G 低至0.46/天,具体规则查看活动详情