2010-01-28 11 views
32

J'ai un fichier de modèle de vélocité qui contient les données de xml. Je veux convertir la chaîne en type entier.Comment convertir une chaîne en entier dans un modèle de vitesse?

Comment puis-je faire cela?

+0

vous avez un fichier XSLT qui fonctionne sur un document d'entrée XML et que vous voulez convertir un champ de type xs: string en type xs: integer? – vicatcu

+0

oui j'ai le doucument d'entrée xml qui a la valeur de chaîne et je veux convertir en entier – uma

+0

pourquoi n'avez-vous pas accepté la réponse? –

Répondre

73

Aha! Été là.

#set($intString = "9") 
#set($Integer = 0) 
$Integer.parseInt($intString) 

Ceci utilise la vélocité java sous-jacente. La variable $ Integer est rien de plus qu'un objet Integer java que vous pouvez ensuite utiliser pour accéder .parseInt

Edit: Le code ci-dessus est pour la démonstration. Bien sûr, il existe des moyens de l'optimiser.

+0

salut merci son travail bien. – uma

+0

Content de pouvoir aider! – Quotidian

+0

Merci, fonctionne bien et guéri le mal de tête. – Matt

9

Si vous avez un certain contrôle sur le contexte de vitesse, voici une alternative qui évite d'avoir à définir une variable dans le modèle Velocity.

Context velocityContext = new Context(); 
velocityContext.put(Integer.class.getSimpleName(), Integer.class); 

Cela vous permet d'appeler les méthodes statiques de java.lang.Integer dans votre modèle à l'aide $Integer.parseInt($value) et ne se fondent pas sur la #set ayant été appelé avant d'effectuer la conversion de type dans le modèle.