Jag har en dropdown lista som jag vill fylla med årtal. Antalet årtal som ska finnas i dropdown listan ska vara max 2. Det första årtalet som ska finnas i dropdown listan ska vara det nuvarande året (nu alltså 2007). Andra året som ska finnas i dropdown listan är året efter det nuvarande året (alltså 2008, nästa år). I stället för att skriva som jag har gjort ovan i koden vill jag att 2007 ska vara det aktuella året som automatiskt ska skrivas ut med någon datumfunktion i java.
Frågan är då, hur löser jag detta på bästa/enklaste sätt??
Din beskrivning av problemet är ganska otydlig, läs gärna igenom den och förtydliga så ska jag nog kunna hjälpa dig. Varför använder du html-taggar i din for-loop?
Jo lite bättre, men jag förstår fortfarande inte varför du använder dig av HTML-taggar när det är Java det gäller?
Importera först paketet:
import java.util.Calendar;
Sedan borde följande göra susen:
Calendar cal = new GregorianCalendar();
for (int year = cal.get(Calendar.YEAR); year < year + 2; year++) {
out.print("<option value='"+year+"'>"+year+"</option>");
}
Calendar cal = new GregorianCalendar();
for (int year = cal.get(Calendar.YEAR), yearLimit = year + 1; year <= yearLimit; year++) {
System.out.print("<option value='"+year+"'>"+year+"</option>");
}
Eller så här:
Calendar cal = new GregorianCalendar();
int year = cal.get(Calendar.YEAR);
for (int yearLimit = year + 1; year <= yearLimit; year++) {
System.out.print("<option value='"+year+"'>"+year+"</option>");
}
Ytterligare ett alternativ (förmodligen snyggaste sättet) ;)
Calendar cal = new GregorianCalendar();
int yearLimit = cal.get(Calendar.YEAR) + 1;
for (int year = cal.get(Calendar.YEAR); year <= yearLimit; year++) {
System.out.print("<option value='"+year+"'>"+year+"</option>");
}
Calendar cal = new GregorianCalendar();
int currentYear = cal.get(Calendar.YEAR);
for (int year = currentYear, yearLimit = currentYear + 1; year <= yearLimit; year++) {
if (year == currentYear)
System.out.print("<option value='"+year+"' selected>"+year+"</option>");
else
System.out.print("<option value='"+year+"'>"+year+"</option>");
}
TagLibs är lite knepiga att sätta sig in i men när du gjort det så blir det oerhört mycket renare kod... och så finns det jäkligt mycket som är gjort redan.