В Spring messages.properties, как обеспечить разрыв строки сообщения об ошибке при использовании кода ошибки в качестве ключа? - PullRequest
6 голосов
/ 29 ноября 2009

В messages.properties:

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

Теперь, когда я установил "errors.rejectValue" с этим "error.code" для поля формы, я не могу получить разрыв строки '\n' для отображения на странице jsp при отображении сообщения об ошибке, используя form:errors element.

Вместо '\n' использование <br/> также не работает и отображается как есть на странице.

Ответы [ 4 ]

3 голосов
/ 14 февраля 2011

Чтобы отобразить <br> как разрыв строки, или чтобы любой другой html-тег в теле сообщения об ошибке вступил в силу, например. <b>, просто отключите экранирование html на уровне тегов, добавив htmlEscape="false" к элементу form:errors.

2 голосов
/ 14 февраля 2011

У меня была такая же проблема при загрузке сообщений из базы данных, что означало, что последовательность '\ n' (новая строка) была экранирована. так вот пример решения, замените "\\ n" на "\ n":

String twoLinesMessage=((String)context.getMessage("error.code", null, locale)).replace("\\n","\n"); 
2 голосов
/ 29 ноября 2009

Компоновка отдельных строк на странице HTML на самом деле не то, с чем может справиться пакет сообщений, она просто не подходит для этой задачи. Если вам нужно отобразить несколько строк, то реально вам понадобятся несколько сообщений с несколькими записями в файле свойств.

Возможно, вы могли бы создать что-то, что повторяет последовательность свойств, с чем-то вроде этого в вашем файле свойств:

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

Затем JSP выполняет задачу рендеринга последовательности сообщений. Хотя и не очень элегантно, но сейчас я не могу придумать лучшего решения:)

1 голос
/ 29 ноября 2009

Расширение тега пружины form:errors и добавление преобразования из \n в <br /> также является небезопасным решением, но, вероятно, будет работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...