FreeMarKer配置全局自定义标签

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/天,具体规则查看活动详情Blog Img