views:

46

answers:

2

I want to do something like this:

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

But then in a .jsp file. All the tutorials I'm seeing require building a class somewhere. We're running appFuse and Tapestry. Surely one of those (if not Java itself) provide us with something to do this sort of thing without all that overhead.

This seems like it should work, but doesn't:

 <%= new Date.getYear() %>
+3  A: 

Use jsp:useBean to construct a java.util.Date instance and use JSTL fmt:formatDate to format it into a human readable string using a SimpleDateFormat pattern.

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

The old fashioned scriptlet way would be:

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

Note that you need to specify the full qualified class name when you don't use @page import directives, that was likely the cause of your problem. Using scriptlets is however highly discouraged since a decade.

This all is demonstrated in the [jsp] tag info page as well :)

BalusC
awesome. thanks for the link -- funny that they use the same example....
sprugman
(still seems like a lot of code for something so simple. :)
sprugman
A: 

You should be writing JSPs using JSTL and using its <fmt> tags to format dates and such.

duffymo