简体   繁体   中英

JavaScript variable not recognizing newline character

I have two ajax calls in my jsp code which go to servlet. In first call, I am setting a value in the session and in another call, I am retrieving the same value from the session. Now this value goes as response of the ajax call(2nd ajax call). My problem is :- This value contains "\\n"(eg-("ABC \\n def\\n geh \\n xyz")) . When I store this value in a js variable and try to access it, it takes " \\n " as string only. It is not recognising it as newline

ajax calls in jsp:-

$.ajax({
    type : "POST",
    url : "ConfiguratorStatusReportServlet?method=datagrid",
    data : finaldata,
    datatype : "JSON",
    async : false,
    success : function(msg) {       
        $('#contentDiv').show();        
        fillDataGrid(msg);      
    }
});


$.ajax({
    type : "POST",
    url : "ConfiguratorStatusReportServlet?method=chart",
    data : finaldata,
    datatype : "JSON",
    async : false,
    success : function(msg) {
        fillDataChartData(msg);
    }
});

code in servlet:-

HttpSession session = request.getSession();
String method = request.getParameter("method");
if(method.equalsIgnoreCase("datagrid"))
{
    JSONArray listjson  = CSR.firstcalledMethod();

    String chartformat = CSR.callingMethod2();
    System.out.println("chartformat in servlet = "+chartformat);

    String result = listjson.toString();
    String checkDataExists =  (String) (session.getAttribute("chartformat") == null ? "Invalid" : session.getAttribute("chartformat"));
    if(!checkDataExists.equalsIgnoreCase("Invalid"))
    {
        session.removeAttribute("chartformat");
    }        
    session.setAttribute("chartformat", chartformat);
    out.write(result); 
}
else 
{
    String chartResult = (String) session.getAttribute("chartformat");
    session.removeAttribute("chartformat");
    out.write(chartResult); 
}

now in the same jsp which contains the ajax calls shown above I am trying to access the variable as :-

function fillDataChartData(dataVAR) {   
    var chartdata = dataVAR;                
    alert("chartdata = "+chartdata);
}

Suppose the response in ajax contains data "APAC-OTHER,0.05 \\n FCS,99.95"(ie dataVAR = "ABC \\n DEF \\n GHI" ). Now, when I am trying to alert it in the function fillDataChartData(dataVAR), it shows "APAC-OTHER,0.05 \\n FCS,99.95" in alert but I want it like APAC-OTHER,0.05 FCS,99.95

How should I do that?? Please help...

It's strange. May be there are some hidden chars in your response? Anyway, you can try to replace linebreaks by br tags:

function fillDataChartData(dataVAR) {   
    var chartdata = dataVAR.replace(/\\n/gm, '<br>');                
    alert("chartdata = "+chartdata);
}

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM