2011-01-12 10 views
1

Ich brauche deine Hilfe bei der Erstellung eines Skripts auf Freemarker mit einer Liste von Jahresoptionen basierend auf $ {copyrightYear} als Basisjahr. Ich werde dies auf Kreditkarten-Ablaufoptionen verwenden, die eine Ausgabe wie folgt haben.

<option value="" name="">Year</option> 
<option value="2011">2011</option> 
<option value="2012">2012</option> 
<option value="2013">2013</option> 
<option value="2014">2014</option> 
<option value="2015">2015</option> 
...until 2021 

2011 sollte $ {COPYRIGHT} sein, und es wird 10-mal erhöht, bis es das Jahr 2021 möchte ich dies erreicht jedes Jahr zu automatisieren. Jede Hilfe von euch wird sehr geschätzt werden. Danke!

Antwort

0

Nun, vorausgesetzt, Ihr Modell ist setup to use static methods. Dies sollte funktionieren,

<#setting number_format="##"> 
<#assign currentYear = statics["java.util.Calendar"].getInstance().getTime()?string("yyyy")?number> 
<option value="" name="">Year</option> 
<#list currentYear..(currentYear + 10) as year> 
    <option value="${year}">${year}</option> 
</#list> 

Es gibt mehrere Möglichkeiten, das aktuelle Jahr zu erhalten. Wenn Sie müssen, stellen Sie sicher, dass Sie das aktuelle Jahr in der richtigen Ländereinstellung erhalten.

Edit 1:

Wie Chaquotay gnädig erwähnt, mit Freemarker 2.3.17 .now verwendet werden kann, aktuelle Zeit statt den statischen Aufruf zu Kalender zu bekommen.

+0

wow das ist schön und ja es hat funktioniert! Danke vielmals! – liza

+1

Mit FreeMarker 2.3.17 und neuer brauchen Sie nicht '' statics ["java.util.Calendar"]. GetInstance(). GetTime() '' mehr können Sie einfach die spezielle Variable '' .now' verwenden '. – Chaquotay