解决方案:
1、建立WEB-INF/tags/format/enter.tag文件,其文件内容如下:
<%@ tag body-content="scriptless" pageEncoding="utf-8" %><%@ attribute name="value" type="java.lang.String" required="true"%><% if(value != null) { int lengthh = value.length(); StringBuffer filtered = new StringBuffer(lengthh); char prevChar = '\u0000'; char c; for (int i = 0; i < lengthh; i++) { c = value.charAt(i); if (c == '"') { filtered.append("\\\""); } else if (c == '\'') { filtered.append("\\'"); } else if (c == '\\') { filtered.append("\\\\"); } else if (c == '\t') { filtered.append("\\t"); } else if (c == '\n') { if (prevChar != '\r') { filtered.append("\\n"); } } else if (c == '\r') { filtered.append("\\n"); } else if (c == '\f') { filtered.append("\\f"); } else if (c == '/') { filtered.append("\\/"); } else { filtered.append(c); } prevChar = c; } value = String.valueOf(filtered); } out.print(value);%>
2、页面运用,代码示例如下:
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%><%@ taglib tagdir="/WEB-INF/tags/format" prefix="format" %>
注:js中的特殊字符有:
转义序列 | 字符 |
---|---|
\b | 退格 |
\f | 走纸换页 |
\n | 换行 |
\r | 回车 |
\t | 横向跳格 (Ctrl-I) |
\' | 单引号 |
\" | 双引号 |
\\ | 反斜杠 |