cocoon-users-fr mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Vincent Demay <do...@anyware-tech.com>
Subject Re: Conversion d'un champ date en flowscript?
Date Wed, 15 Nov 2006 08:56:41 GMT
Le but du convertor est de transformer un objet en une chaine de 
caractère le représentant ou inversement en respectant un format donné 
(pour cette date : yyyy-MM-dd). Ces convertions sont necessaires dans 
les cas ou l'on ne peut pas représenter un objet sous une autre forme 
qu'une chaine de caractere (dans les champs coté navigateur ou pour un 
binding comme dans ton exemple (sous forme XML)). Cependant au niveau du 
flow-script (qui est orienté objet) le getValue ne renvoie pas une  
chaine de caractère mais un objet et le "Fri Nov 3 00:00:00 CET 2006" 
est en fait le toString de l'objet java.util.Date :

La page coté navigateur avec                                             
Le convertor passe pour transformer                 
une champ date contenant une      -->      Submit      -->    la chaine 
de caractere en objet                   -->         getValue() renvoie 
cet objet
valeur (chaine de caractère)

L'utilisation de simpleDateFormat pour donner une représentation "chaine 
de caractere" de ton objet est bien adapté coté flowScript         

jmc.artignan@free.fr a écrit :
> Bonjour Eric,
>
> Je ne suis pas sûr de ma réponse mais pour une fois que j'ai une idée de
> solution à proposer je me lance ...
>
> Dans ton flowscript (en javascript), tu fais sûrement quelque chose comme :
>
> var monWidget = form.lookupWidget([id_du_widget]);
> var monWidgetValue = monWidget.value;
>
> Là, comme ta méthode est générique, avant d'appliquer un format de date, il
> faudrait quelque chose comme:
>
> if(monWidgetValue instanceof java.util.Date) {
> }
>
> Et dans la condition tu peux appliquer un format date:
>
> var formatter = new java.text.SimpleDateFormat(["yyyy-MM-dd"]);
>
> var maDateFormatee = formatter.format(monWidgetValue);
>
> Et ça devraît être au bon format.
>
> Donc le code, pour se résumer (on peut sortir les définitions de la condition
> 'if'):
>
> var formatter = new java.text.SimpleDateFormat(["yyyy-MM-dd"]);
> var maDateFormatee;
>
> var monWidget = form.lookupWidget([id_du_widget]);
> var monWidgetValue = monWidget.value;
>
> if(monWidgetValue instanceof java.util.Date) {
>   maDateFormatee = formatter.format(monWidgetValue);
> }
>
> J'ai essayé avec cocoon-2.1.9, et ça devrait marcher.
> Cordialement,
> Jean-Michel ARTIGNAN
>
> Selon Eric Cambray <ec@bluexml.org>:
>
>   
>> Bonjour,
>> travaillant actuellement sur un cocoon 2.1.9 dev (et pas de possibilité
>> de le changer) j'ai un problème avec un champ date et la récupération de
>> sa valeur en flowscript :
>> Voici la définition du champ avec un convertor :
>> <fb:value id="startDate" path="startDate">
>>     <fd:convertor datatype="date">
>>         <fd:patterns>
>>             <fd:pattern>yyyy-MM-dd</fd:pattern>
>>         </fd:patterns>
>>     </fd:convertor>
>> </fb:value>
>>
>> Voici l'appel dans le flowscript (placé dans une fonction générique qui
>> va parcourir l'ensemble de mes widgets de mon formulaire) :
>> filterWidget.getValue();
>>
>> Cet appel me donne une date sous la forme :
>>
>> "Fri Nov 3 00:00:00 CET 2006" et non 2006-11-03
>>
>> Rien à voir avec mon convertor donc. Existe-t-il une façon de forcer à
>> avoir le bon convertisseur lors d'un getValue()? Ou d'utiliser le
>> convertisseur pour transformer ma date dans le bon format?
>> La fonction étant très générique je ne peux réaliser une transformation
>> de date sans connaitre son format de départ et le format voulu.
>>
>> Merci.
>>
>> Eric Cambray
>>
>> ---------------------------------------------------------------------
>> Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
>> Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
>> Autres commandes : mailto:users-fr-help@cocoon.apache.org
>>
>>
>>     
>
>
>
> ---------------------------------------------------------------------
> Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
> Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
> Autres commandes : mailto:users-fr-help@cocoon.apache.org
>
>   


-- 
Vincent Demay
Systèmes d'Information
ANYWARE TECHNOLOGIES
Tel : +33 (0)561 000 649
Fax : +33 (0)561 005 146
http://www.anyware-tech.com/


---------------------------------------------------------------------
Liste francophone Apache Cocoon -- http://cocoon.apache.org/fr/
Pour vous desinscrire : mailto:users-fr-unsubscribe@cocoon.apache.org
Autres commandes : mailto:users-fr-help@cocoon.apache.org


Mime
View raw message