这是在html源中呈现的内容:
<li>Confirm Password doesn&#39;t match password./li>
在浏览器上,这被读取为:确认密码不&39;t匹配密码。
这是生成以下内容的代码:
<spring:hasBindErrors name="profileAccount">
<ul class="errorsList">
<c:forEach items="${errors.allErrors}" var="error">
<li><spring:message code="${error.code}"
text="${error.defaultMessage}"
/></li>
</c:forEach>
</ul>
</spring:hasBindErrors>
如何防止双重逃跑?
感谢
spring:hasBindErrors
和spring:message
都遵守默认的全局HTML转义设置(通过作为上下文参数的defaultHtmlEscape
或通过htmlEscape
标记)。
最终的结果是,当${error.defaultMessage}
被传递到<spring:message>
时,它将已经被转义。您可以通过在其中一个上禁用HTML转义来解决此问题(但在另一个上不禁用)。示例:
<spring:message htmlEscape="false" code="${error.code}" text="${error.defaultMessage}"/>
http://static.springsource.org/spring/docs/2.5.x/reference/spring.tld.html#spring.tld.htmlEscape
和
http://static.springsource.org/spring/docs/2.5.x/reference/spring.tld.html#spring.tld.message
htmlEscape属性。