模板的网址是: http://localhost:8080/login?error=Usu%E1rio%20inexistente%20ou%20senha%20inv%E1lida
其中,例如,%E1是á
我正在尝试使用以下代码在页面上显示param错误的值:
但正在显示带有特殊字符的错误值。
答案 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}