在spring message.properties中,如何在使用错误代码作为键时确保错误消息的换行符?

时间:2009-11-29 19:10:59

标签: java spring jsp spring-mvc

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/>也不起作用,并在页面上显示。

4 个答案:

答案 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 />的转换也是一个非常美丽的解决方案,但可能会有效。