使用freemarker的web項目經常需要用在Url后面加上時間戳來保證資源不被緩存,我們可以自定義方法實現時間戳。
先看freemarker配置信息:
<bean id="freemarkerConfig" class="org.s下面看UrlTimestampMethodModel是如何實現的:
//必須實現freemarker.template.TemplateDirectiveModel@Componentpublic 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>
新聞熱點
疑難解答