2009-11-29 4 views
4

En messages.properties:Dans un printemps messages.properties, comment assurer le saut de ligne du message d'erreur lors de l'utilisation d'un code d'erreur en tant que clé?

error.code=This is error message.\nThis is next line of error message. 

Maintenant, quand je mets « errors.rejectValue » avec ce « error.code » pour un champ de formulaire, je ne peux pas le saut de ligne de '\n' pour afficher sur la page jsp lors de l'affichage du message d'erreur à l'aide l'élément form:errors.

Au lieu de '\n', l'utilisation de <br/> ne fonctionne pas et s'affiche tel quel sur la page.

Répondre

2

La mise en page de lignes distinctes dans une page HTML n'est pas vraiment quelque chose qu'un lot de messages peut traiter, ce n'est tout simplement pas adapté à la tâche. Si vous avez besoin de plusieurs lignes à afficher, alors vous aurez besoin de plusieurs messages, avec plusieurs entrées dans le fichier de propriétés.

Peut-être que vous pourriez concocter quelque chose qui itère sur une séquence de propriétés, avec quelque chose comme ceci dans votre fichier de propriétés:

error.code.1=This is error message. 
error.code.2=This is next line of error message. 

Il devient alors le travail de la JSP pour rendre la séquence des messages. Pas très élégant, bien, mais je ne peux pas penser à une meilleure solution en ce moment :)

1

L'extension de la balise de printemps form:errors et en ajoutant la conversion \n-<br /> est également une solution non-beatiful, mais qui va probablement travailler .

1

J'ai eu le même problème lors du chargement des messages de la base de données, ce qui signifie que la séquence '\ n' (nouvelle ligne) a été échappée. alors voici la solution échantillon, remplacer le « \\ n » avec « \ n »:

String twoLinesMessage=((String)context.getMessage("error.code", null, locale)).replace("\\n","\n"); 
3

Pour afficher un <br> comme un saut de ligne, ou pour toute autre balise html dans le corps du message d'erreur prendre effet par exemple <b>, il suffit d'activer html s'échapper au niveau de l'étiquette en ajoutant htmlEscape="false" à votre form:errors élément.