geoserver - problème de format de date des fiches html/text

5 views
Skip to first unread message

Rodolphe Goffinet

unread,
Oct 31, 2025, 12:18:42 PM (6 days ago) Oct 31
to georchestra
Bonjour à tous,

Nous rencontrons actuellement, sur notre plateforme geOrchestra, un problème  avec la gestion des formats de dates lors de l'utilisation du format html/text (que l'on utilise par défaut dans notre mapstore).
Les dates de nos couches sont renvoyées au format "M/d/yy hh:mm a" par geoserver lorsque les champs sont au format date dans notre bdd. C'est problématique car :
1. nos utilisateurs ont l'habitude de lire d'abord le jour puis le mois  ;
2. nous avons des données dont les dates peuvent appartenir aux années 18xx, 19xx 20xx et ce format ne permet pas de les distinguer.

Nous avions trouvé une solution en modifiant le content.ftl en 2023 (fichier dispo en PJ). Nous utilisions la version 2.18.x-georchestra de geoserver.

Mais nous constatons aujourd'hui qu'avec la version 2.25.x-georchestra de geoserver cette solution n'est plus du tout fonctionnelle : la fiche html/text est retournée vide.
La valeur des attributs de type java.sql.Date n'est plus reconnu comme une date et les fonctions built-in (?date ?is_date ?is_date_like), etc. ne fonctionnent pas sur ces attributs sans que nous sachions pourquoi cette gestion a été modifiée lors du changement de version GS.

J'en appelle donc à vos connaissances pour savoir si, vous avez déjà eu des problèmes similaires dans la gestion des dates retournées par geoserver en html/text ?
Avez-vous des solutions ou des suggestions sur des méthodes que nous pourrions tester pour résoudre ce problème de format de date ?

Merci d'avance pour votre aide !
content-hs.ftl

Jean Pommier

unread,
Oct 31, 2025, 12:57:47 PM (6 days ago) Oct 31
to georc...@googlegroups.com, Rodolphe Goffinet

Bonjour Rodolphe,

Il me semble que geoserver a récemment actualisé la version FTL utilisée, ça doit être la toute dernière version à présent ou presque, ce qui peut avoir apporté des changements.

Tu trouveras sans doute tes réponses dans la doc FTL : https://freemarker.apache.org/docs/ref_builtins_date.html#ref_builtin_string_for_date

En premier lieu, ta date ressemble plutôt à une datetime, essaie de remplacer date par datetime, déjà

Bonne soirée,

Jean


Jean Pommier -- pi-Geosolutions

Ingénieur, consultant indépendant

Tél. : (+33) 6 09 23 21 36
E-mail : j...@pi-geosolutions.fr
Web : www.pi-geosolutions.fr
linkedin : jean-pommier

Merci d'avance pour votre aide ! --
--
Vous avez reçu ce message, car vous êtes abonné au groupe
Groupe "georchestra" georc...@googlegroups.com
voir http://groups.google.fr/group/georchestra
 
Site web : http://www.georchestra.org

---
Vous recevez ce message, car vous êtes abonné au groupe Google georchestra.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, envoyez un e-mail à l'adresse georchestra...@googlegroups.com.
Pour afficher cette discussion, accédez à https://groups.google.com/d/msgid/georchestra/28eae5ad-6f74-44c0-a5c0-992c8f411c57n%40googlegroups.com.

Rodolphe Goffinet

unread,
Nov 4, 2025, 6:22:39 AM (2 days ago) Nov 4
to georchestra
Bonjour Jean,

Merci pour ta réponse ! Effectivement ça doit être la mise à jour de la version FTL de geoserver qui doit être à l'origine de notre problème.

J'ai pu pousser mes tests grâce à ta réponse. Ma conclusion est que les éléments de type java.sql.Date (ou java.sql.Timestamp) ne peuvent plus être identifiés comme des dates grâce aux fonctions builtins listées dans la doc FTL que tu m'as transmise (y compris l'utilisation du datetime plutôt que le date) : il n'est donc plus possible de tester attribute.type?is_date ou attribute.value?is_date (ou ?date, ?datetime, etc) avec les éléments de type java.sql.Date ou java.sql.Timestamp.

Par contre les formats des dates des values de ces éléments peuvent heureusement toujours être modifiés grâces aux builtins.
On peut utiliser attribute.value?date(...)?string(...) pour modifier les formats de ces dates. Sous réserve de connaitre PRECISEMENT le format à traiter en entrée.
Et c'est précisément ce point qui nous a mis en échec lors de nos premiers tests. Désormais les strings issus des java.sql.Date possèdent une virgule entre la date et l'heure (ce qui n'était pas le cas dans la précédente version).

J'ai donc modifier la précédent content.ftl pour remplacer 'attribute.value?is_date' par 'attribute.type == "java.sql.Date"'.
Et ajouté la virgule dans le format de date testé avant sa modification "attribute.value?date("M/d/yy, hh:mm a")?string["dd MMM yyyy, HH:mm"]}".

Tout est désormais fonctionnel ! (je mets à nouveau mon content.ftl en pj)

Merci pour ton aide !

A bientôt

Rodolphe
content-OK.ftl
Reply all
Reply to author
Forward
0 new messages