LocalDate型の変数をJSPで任意のフォーマットで表示する

サーブレット側で設定した日付(LocalDate)を保持した変数をjspに表示する。
こんな単純なことなのに、案外はまってしまった。

  • コントローラ
@Service
public class TestService {
    public Model getTest( Model model) throws ApplicationException {
        model.addAttribute("today", LocalDate.of(2017, 5, 1));
            return model;
    }
}
<%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<%@taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt" %>
...
<fmt:parseDate value="${today}" pattern="yyyy-MM-dd" var="parsedToday" type="date" />
<fmt:formatDate value="${parsedToday}" var="newParsedToday" type="date" pattern="yyyy/MM/dd" />
<p>${newParsedToday}</p>

parseDateを利用して一度、var=“parsedToday” とした後、 formatDateを利用し、表示したい形式にする。