比较字符串 UTF-8 时的 jstl 错误。(Spring Security - principal.username)
jstl bug while comparing strings UTF-8.(Spring Security - principal.username)
我的 jsp 页面有:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
...
<c:set var="currentUser">
<sec:authentication property = "principal.username"/>
</c:set>
<c:if test = "${currentUser eq user.login}" >
...
当我比较英语单词评价时 returns true,但当涉及到俄语等时 - false。
一开始我认为 jsp 编码可能会有问题,但是当我运行类似的东西时
<c:if test = "${'Андрей' eq 'Андрей'}" >
它来了真
甚至
<c:if test = "${currentUser eq 'Андрей'}" > turns `false`
最后我想添加浏览器显示值 ${currentUser} 和 ${user.login} 作为一样
${currentUser}<br>
${user.login}
来了
Андрей
Андрей
提前感谢您的回复!
请试试这个测试页。这个对我有用。
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
pageContext.setAttribute( "currentUser", "Андрей");
%>
Test page.
<c:if test = "${currentUser eq 'Андрей'}" >
Yes, they are equal.
</c:if>
<c:if test = "${currentUser eq currentUser}" >
Yes, they are equal. currentUesr is ${currentUser}
</c:if>
输出:
测试页。是的,他们是平等的。是的,他们是平等的。 currentUesr 是 Андрей
我的 jsp 页面有:
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
...
<c:set var="currentUser">
<sec:authentication property = "principal.username"/>
</c:set>
<c:if test = "${currentUser eq user.login}" >
...
当我比较英语单词评价时 returns true,但当涉及到俄语等时 - false。
一开始我认为 jsp 编码可能会有问题,但是当我运行类似的东西时
<c:if test = "${'Андрей' eq 'Андрей'}" >
它来了真
甚至
<c:if test = "${currentUser eq 'Андрей'}" > turns `false`
最后我想添加浏览器显示值 ${currentUser} 和 ${user.login} 作为一样
${currentUser}<br>
${user.login}
来了
Андрей
Андрей
提前感谢您的回复!
请试试这个测试页。这个对我有用。
<%@ page contentType="text/html;charset=UTF-8" language="java" pageEncoding="UTF-8" %>
<%
pageContext.setAttribute( "currentUser", "Андрей");
%>
Test page.
<c:if test = "${currentUser eq 'Андрей'}" >
Yes, they are equal.
</c:if>
<c:if test = "${currentUser eq currentUser}" >
Yes, they are equal. currentUesr is ${currentUser}
</c:if>
输出:
测试页。是的,他们是平等的。是的,他们是平等的。 currentUesr 是 Андрей