Thymeleaf th:文本在编码参数上显示错误值

时间:2017-12-22 20:00:31

标签: thymeleaf

模板的网址是: http://localhost:8080/login?error=Usu%E1rio%20inexistente%20ou%20senha%20inv%E1lida

其中,例如,%E1是á

我正在尝试使用以下代码在页面上显示param错误的值:

但正在显示带有特殊字符的错误值。

2 个答案:

答案 0 :(得分:0)

欢迎来到SO。

我看到两种方法可以尝试:

1)将该实用程序用于HttpServletRequest

<p th:utext="${#httpServletRequest.getParameter('error')}">[error message]</p>

这是从请求中获取error参数的值。

2)使用典型用法来获取参数的值:

<p th:utext="${param.error}">[error message]</p>

在任何一种情况下,您都可以使用th:if来检查null。您可以使用utext获取未转义的文本,以便显示异常字符。

另外,请检查您的字符编码是否设置为UTF-8。在您的配置中,它看起来像:

resolver.setCharacterEncoding(StandardCharsets.UTF_8.name());

resolver.setCharacterEncoding("UTF-8");

答案 1 :(得分:0)

我没有尝试解码 URL,而是首先使用 URLEncoder.encode(errorMessage) 对生成的错误消息进行编码。因此,URL 更改为 http://localhost:8080/login?error=Usuário+inexistente+ou+senha+inválida。然后,我不需要解码。我只用了 th:text="${param.msgError}