[Freemarker]사용자 정의 타임 스탬프 함수

3083 단어 freemarker
freemarker 를 사용 하 는 웹 프로젝트 는 자원 이 캐 시 되 지 않도록 Url 뒤에 시간 스탬프 를 추가 해 야 합 니 다.시간 스탬프 를 사용자 정의 할 수 있 습 니 다.
freemarker 설정 정보 먼저 보기:
<bean id="freemarkerConfig"

        class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">

        <property name="templateLoaderPath" value="/WEB-INF/ftl/" />

        <property name="defaultEncoding" value="UTF-8" />

        <property name="freemarkerSettings">

            <props>

                <prop key="template_update_delay">0</prop>

                <prop key="locale">zh_CN</prop>

                <prop key="default_encoding">UTF-8</prop>

            </props>

        </property>

        <!--        -->

        <property name="freemarkerVariables">

            <map>

                <entry key="urlTimestamp" value-ref="urlTimestampMethod" />

            </map>

        </property>

    </bean>

    <bean id="urlTimestampMethod" class="com.xxx.UrlTimestampMethodModel" />

다음은 UrlTimestampMethodModel 이 어떻게 실현 되 었 는 지 살 펴 보 겠 습 니 다.
//    freemarker.template.TemplateDirectiveModel
@Component public class UrlTimestampMethodModel implements TemplateDirectiveModel { @Override public
void execute(Environment env, Map params, TemplateModel[] loopVars, TemplateDirectiveBody body) throws TemplateException, IOException { // + String strTimestamp = ""; try { strTimestamp = String.valueOf(System.currentTimeMillis()) + getRandom(1000, 9999); } catch (Exception ex) { } env.getOut().write(strTimestamp); } private int getRandom(int min, int max) { Random random = new Random(); return Integer.parseInt(String.valueOf(random.nextInt(max) % (max - min + 1) + min)); } }

템 플 릿 페이지 에서 이렇게 사용:
<a href="http://abc.com?t=<@urlTimestamp />">123</a>

좋은 웹페이지 즐겨찾기