2010-09-10 26 views
16

voglio fare qualcosa di simile:Come stampare la data corrente in JSP?

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

Ma poi in un file .jsp. Tutti gli tutorials che sto vedendo richiedono di costruire una classe da qualche parte. Stiamo eseguendo appFuse e Tapestry. Sicuramente uno di questi (se non lo stesso Java) ci fornisce qualcosa per fare questo genere di cose senza tutto ciò che in testa.

questo sembra come dovrebbe funzionare, ma non lo fa:

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

Sembra che ci sia una certa confusione di idee qui. O stai usando Tapestry o stai usando JSP, ma difficilmente entrambi o sei? – Henning

+0

Beh, dato che non so cosa sto facendo :), sì, sto modificando entrambi i file .jsp e .tml, a seconda. Il frame della pagina approssimativa è principalmente jsps fino ad ora, ad es. default.jsp, header.jsp, footer.jsp. Suppongo che il contenuto della pagina sarà più .tml. (Il quadro è stato preparato per me da qualcun altro.) – sprugman

+0

Miscela interessante. Buona fortuna :) – Henning

risposta

57

Usa jsp:useBean per costruire un'istanza java.util.Date e utilizzare JSTL fmt:formatDate per formattare in una stringa leggibile utilizzando un modello SimpleDateFormat.

<%@ 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" /> 

Il vecchio stile scriptlet modo potrebbe essere:

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

Si noti che è necessario specificare il nome completo della classe qualificato quando non si utilizza @page import direttive, che era probabilmente la causa di il tuo problema. L'utilizzo di script è tuttavia altamente discouraged da un decennio.

Tutto questo è dimostrato nel [jsp] tag info page così :)

+0

fantastico. grazie per il link - divertente che usano lo stesso esempio .... – sprugman

+0

(sembra ancora un sacco di codice per qualcosa di così semplice.) – sprugman

+1

@BalusC: vendi magliette che dicono "fan di BalusC"? perchè ne comprerei uno! :) –

-1

Si dovrebbe scrivere JSP utilizzando JSTL e usando i suoi <fmt> tag per formattare date e così via.

1

La mia soluzione:

<%@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

Mentre è breve e si applica direttamente alla domanda, si noti che questo è uno scriptlet, che BalusC ha già menzionato è scoraggiato. –

+0

Obsoleto. A partire da JDK versione 1.1, sostituito da Calendar.get (Calendar.YEAR) - 1900. – MonoThreaded

Problemi correlati