当我使用 Javascript 构建字符串时,为什么 Oracle ADF 不为我转义引号?
<jsp:root ...>
<f:view ...>
<afh:html>
<f:loadBundle basename="message" var="msg"/>
<afh:head ...>
<script>
function validate() {
var errorMessages = '';
.
.
if (regNum == '') {
errorMessages = errorMessages + '<h:outputText value='#{msg['getDetails.validate.regNum']}"/>' + '\r\n';
}
.
.
在我的消息资源文件中,我有类似的内容
getDetails.validate.regNum=I'd enter the registration number if I were you.
真实文本是爱尔兰语,带有重音字符,我可以看到重音字符被转义,但引号字符没有转义。
最佳答案
因为单引号在 HTML 中并不非法。
但它们是用 JS 编写的。您可以使用fn:replace()
逃离他们。
<%@ taglib prefix="fn" uri="http://java.sun.com/jsp/jstl/functions" %>
...
<script>
var foo = '<h:outputText value="#{fn:replace(msg['getDetails.validate.regNum'], "'", "\'")}"/>';
关于java - 当我使用 <h :outputText/>? 时,为什么 Oracle ADF 不为我转义引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3711194/