【问题标题】:In a spring messages.properties, how to ensure line break of error message when using an error code as key?在 spring messages.properties 中,使用错误代码作为键时如何确保错误消息的换行?
【发布时间】:2010-12-21 10:45:59
【问题描述】:

messages.properties:

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

现在,当我使用此“error.code”为表单字段设置“errors.rejectValue”时,当使用 @987654326 显示错误消息时,我无法在 jsp 页面上显示 '\n' 的换行符@元素。

使用<br/> 代替'\n' 也不起作用,并按原样显示在页面上。

【问题讨论】:

    标签: java spring jsp spring-mvc


    【解决方案1】:

    为了将<br> 显示为换行符,或者为了使错误消息正文中的任何其他 html 标记生效,例如<b>,只需将 htmlEscape="false" 添加到您的 form:errors 元素即可在标签级别关闭 html 转义。

    【讨论】:

      【解决方案2】:

      HTML 页面中不同行的布局实际上并不是消息包可以处理的,它只是不适合该任务。如果您需要显示多行,那么实际上您将需要多条消息,属性文件中有多个条目。

      也许你可以在你的属性文件中创建一些迭代一系列属性的东西:

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

      然后它成为 JSP 的工作来呈现消息序列。虽然不是很优雅,但我现在想不出更好的解决方案:)

      【讨论】:

        【解决方案3】:

        我在从数据库加载消息时遇到了同样的问题,这意味着“\n”(新行)序列被转义了。所以这里是示例解决方案,将“\\n”替换为“\n”:

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

        【讨论】:

          【解决方案4】:

          扩展 spring 标记 form:errors 并添加从 \n<br /> 的转换也是一种不完美的解决方案,但可能会奏效。

          【讨论】:

            【解决方案5】:

            在您的代码中使用"<br/>" 代替"\n"

            例如:

            return i + " x " + j + " = "+ (Integer.valueOf(i * j) + "<br/>"));
            

            这将返回 web 中带有换行符的乘法表。

            【讨论】:

              猜你喜欢
              • 2014-01-29
              • 2011-05-11
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 1970-01-01
              • 2022-01-23
              • 1970-01-01
              相关资源
              最近更新 更多