Convert Java variable containing newline to javasc

2019-08-24 03:22发布

问题:

This question already has an answer here:

  • Escaping javascript string in java 3 answers

I want to convert a java variable(containing newline and other special characters) from server side sent to JSP to javascript variable.

In my JSP,

var test = '${educationDescription}';
alert(test);

Value of educationDescription sent from server side is

    This is
test
containing newline
and other special chars like " & ; etc

But I am getting javascript error for the above code snippet.

回答1:

This issue I faced long back and very irritated with javascript as well for no proper error message.

Later I managed to solve by replacing all catridges like below from Java string.

<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn" %>

'${fn.replace(educationDescription,"\\r\\n|\\r|\\n", "")';

It solves the issue.

The issue here is with, we assume the problem is with new line. But sometimes the String comes with a brand new catride \r which many people not aware.



回答2:

You can do something like this. Use two slashes ("\\n")

<%
String s = "This is a \\n test";
request.setAttribute("s", s);
%>

var s="${s}";
alert(s);