2010-09-10 4 views
16

möchte ich so etwas wie dies zu tun:Wie aktuelles Datum in JSP drucken?

<?php echo date('Y'); ?> 

Aber dann in einer .jsp Datei. Alle tutorials Ich sehe, dass irgendwo eine Klasse gebaut werden muss. Wir führen appFuse und Tapestry aus. Sicherlich gibt uns einer von ihnen (wenn nicht Java selbst) etwas, um so etwas ohne den ganzen Aufwand zu tun.

Dies scheint, wie es funktionieren soll, aber nicht:

<%= new Date.getYear() %> 
+0

Es scheint hier einige Verwirrung der Ideen zu sein. Sie verwenden entweder Tapestry oder Sie verwenden JSPs, aber kaum beides, oder? – Henning

+0

Nun, vorausgesetzt, dass ich nicht weiß, was ich tue :), ja, ich bearbeite sowohl .jsp und .tml-Dateien, abhängig. Der grobe Seitenrahmen ist meistens jsps, z. default.jsp, header.jsp, footer.jsp. Ich gehe davon aus, dass der Seiteninhalt mehr .tml sein wird. (Der Rahmen wurde von jemand anderem für mich eingerichtet.) – sprugman

+0

Interessante Mischung. Viel Glück :) – Henning

Antwort

57

Verwenden jsp:useBean eine java.util.Date Instanz zu konstruieren und verwenden JSTL fmt:formatDate es in einen Menschen lesbaren String formatiert wird ein SimpleDateFormat Muster.

<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 
<jsp:useBean id="date" class="java.util.Date" /> 
Current year is: <fmt:formatDate value="${date}" pattern="yyyy" /> 

Die altmodische scriptlet Weg wäre:

<%= new java.text.SimpleDateFormat("yyyy").format(new java.util.Date()) %> 

Beachten Sie, dass Sie den vollständigen qualifizierten Klassennamen angeben müssen, wenn Sie nicht @page import Richtlinien verwenden, das war wahrscheinlich die Ursache für Ihr Problem. Verwenden Scriptlets ist jedoch in hohem Grade discouraged seit einem Jahrzehnt.

Das alles ist in den [jsp] tag info page auch gezeigt :)

+0

genial. Danke für den Link - lustig, dass sie das gleiche Beispiel verwenden .... – sprugman

+0

(scheint immer noch wie viel Code für etwas so einfach. :) – sprugman

+1

@BalusC: verkaufen Sie T-Shirts sagen "BalusC Fan"? Coz würde ich einen kaufen! :) –

-1

sollten Sie JSPs JSTL und mit seinen <fmt> Tags Termine und so zu formatieren, schreiben mit.

1

Meine Lösung:

<%@page import="java.util.Calendar"%> 
<%@page import="java.util.GregorianCalendar"%> 
    <% 
     GregorianCalendar cal = new GregorianCalendar(); 
     out.print(cal.get(Calendar.YEAR)); 
    %> 
2

<%= new java.util.Date().getYear() + 1900 %>

+1

Während kurz und bezieht sich direkt auf die Frage, beachten Sie, dass dies ein Skriptlet ist, die BalusC bereits erwähnt, wird abgeraten. –

+0

Veraltet. Ab JDK Version 1.1, ersetzt durch Calendar.get (Calendar.YEAR) - 1900. – MonoThreaded