SetLocale no funcionó en el sitio jsp para dar formato a la moneda en alemán

Estoy confundido con la etiqueta jstl libs:

Quiero formatear un número a una moneda con estilo alemán ... pero todo lo que probé no funcionó ...

Encontré el siguiente ejemplo pero la salida es la misma -.-

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<%@taglib uri="http://java.sun.com/jsp/jstl/core"
      prefix="c" %>
<%@taglib uri="http://java.sun.com/jsp/jstl/fmt"
      prefix="fmt" %>

<html>
<head>
    <title>format number</title>
</head>
<body>
    <c:set var="val" value="40.52" />
    <p> Currency in USA
    <fmt:setLocale value="en_US"/>
    <fmt:formatNumber value="${val}"
              type="currency" />
    </p>

    <p>Currency in Germany
    <fmt:setLocale value="de_DE"/>
    <fmt:formatNumber value="${val}"
              type="currency"/>
    </p>
</body>
</html>

Y esa es la salida:

Currency in USA $40.52

Currency in Germany $40.52

¿Qué va mal allí?

gracias por tu ayuda.

Respuestas a la pregunta(2)

Su respuesta a la pregunta