2010-09-10 41 views
16

quiero hacer algo como esto:¿Cómo imprimir la fecha actual en JSP?

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

Pero entonces, en un archivo .jsp. Todos los tutorials que estoy viendo requieren construir una clase en alguna parte. Estamos ejecutando appFuse y Tapestry. Seguramente uno de esos (si no es el propio Java) nos proporciona algo para hacer este tipo de cosas sin toda esa sobrecarga.

esto parece que debería funcionar, pero no:

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

Parece que hay cierta confusión de ideas aquí. Estás usando Tapestry o estás usando JSP, pero apenas los dos, ¿o sí? – Henning

+0

Bueno, dado que no sé lo que estoy haciendo :), sí, estoy editando ambos archivos .jsp y .tml, dependiendo. El marco de página aproximado es en su mayoría jsps hasta ahora, p. default.jsp, header.jsp, footer.jsp. Supongo que el contenido de la página será más .tml. (El marco fue configurado para mí por otra persona). – sprugman

+0

Mezcla interesante. Buena suerte :) – Henning

Respuesta

57

Uso jsp:useBean para construir una instancia java.util.Date y utilizar JSTL fmt:formatDate darle formato a una cadena legible por humanos usando un patrón 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" /> 

El pasado de moda scriplet manera sería:

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

Tenga en cuenta que es necesario especificar el nombre completo de clase completo cuando no se utiliza @page import directivas, que era probable que la causa de tu problema. Sin embargo, el uso de scriptlets es altamente discouraged desde hace una década.

Todo esto se demuestra en el [jsp] tag info page así :)

+0

impresionante. gracias por el enlace - divertido que usan el mismo ejemplo .... – sprugman

+0

(todavía parece un montón de código para algo tan simple. :) – sprugman

+1

@BalusC: ¿vendes camisetas diciendo "ventilador de BalusC"? ¡porque compraría uno! :) –

-1

Usted debe escribir páginas JSP utilizando JSTL y el uso de sus <fmt> etiquetas para formatear fechas y tal.

1

Mi solución:

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

Si bien es corto y se aplica directamente a la pregunta, tenga en cuenta que se trata de un scriptlet, que BalusC ya mencionó no se recomienda. –

+0

Obsoleto. A partir de la versión 1.1 de JDK, reemplazado por Calendar.get (Calendar.YEAR) - 1900. – MonoThreaded

Cuestiones relacionadas