我知道有很多JavaScript转义问题,但是似乎没有什么适合我的需求。

我有textarea元素在JSP上动态显示。如果表单提交无效,我需要用用户输入的值重新填充这些字段。我这样做是这样的(注意:简化版):

var textareaBox = document.getElementById("myTextArea");
if (textareaBox) {
    textareaBox.value = '${myForm.myValue}';
}


一切正常,直到用户在包含特殊字符的框中输入一个值。我试过分别使用escapeunescape JavaScript函数,但无济于事。

有谁知道我该如何处理这些特殊字符值?请注意,我显然不希望在文本区域中转义的文本,因为这对用户来说看起来不太好。

最佳答案

使用JSTL<c:out>标记对其进行转义并将其分配为文本区域的innerHTML

textareaBox.innerHTML = '<c:out value="${myForm.myValue}" />';


但是,为什么不使用JS而不直接将其显示在textarea的正文中呢?

<textarea id="myTextArea"><c:out value="${myForm.myValue}" /></textarea>


<c:out>(及其EL函数副本fn:escapeXml())转义XML特殊字符。

也可以看看:


Not able to display special characters properly in a JSP page

10-05 20:49
查看更多