在messages.properties
:
error.code=This is error message.\nThis is next line of error message.
现在,当我使用此“errors.rejectValue
”为表单字段设置“error.code
”时,我无法在显示时在jsp页面上显示'\n'
的换行符使用form:errors
元素的错误消息。
使用'\n'
代替<br/>
也不起作用,并在页面上显示。
答案 0 :(得分:3)
为了将<br>
显示为换行符,或将错误消息正文中的任何其他html标记显示为有效,例如<b>
,只需将htmlEscape="false"
添加到form:errors
元素,即可在标记级别转换html。
答案 1 :(得分:2)
HTML页面中不同行的布局实际上并不是消息包可以处理的内容,它不适合该任务。如果您需要显示多行,那么实际上您需要多条消息,属性文件中有多个条目。
也许你可以做一些迭代一系列属性的东西,在你的属性文件中有这样的东西:
error.code.1=This is error message.
error.code.2=This is next line of error message.
然后它成为JSP的工作来呈现消息序列。虽然不是很优雅,但我现在想不出更好的解决方案:)
答案 2 :(得分:2)
我在从数据库加载消息时遇到了同样的问题,这意味着'\ n'(新行)序列已被转义。所以这是示例解决方案,将“\\ n”替换为“\ n”:
String twoLinesMessage=((String)context.getMessage("error.code", null, locale)).replace("\\n","\n");
答案 3 :(得分:1)
扩展spring标记form:errors
并添加从\n
到<br />
的转换也是一个非常美丽的解决方案,但可能会有效。