JavaScript变量无法识别换行符

时间:2014-02-27 11:50:51

标签: java javascript jquery ajax jsp

我的jsp代码中有两个ajax调用,它们转到servlet。在第一次调用中,我在会话中设置一个值,在另一个调用中,我从会话中检索相同的值。现在这个值作为ajax调用的响应(第二个ajax调用)。 我的问题是: - 该值包含“\ n”(例如 - (“ABC \ n def \ n geh \ n xyz”))。当我将此值存储在js变量中并尝试访问它时,它仅将“ \ n ”作为字符串。它没有将其识别为换行符

ajax在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);
    }
});
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); 
}

现在在包含上面显示的ajax调用的同一个jsp中我试图访问变量: -

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

假设ajax中的响应包含数据“APAC-OTHER,0.05 \ n FCS,99.95”(即dataVAR =“ABC \ n DEF \ n GHI”)。现在,当我尝试在函数fillDataChartData(dataVAR)中提示它时,它会在警报中显示“APAC-OTHER,0.05 \ n FCS,99.95”,但我希望它像APAC-OTHER,0.05      FCS,99.95

我该怎么做?请帮忙......

1 个答案:

答案 0 :(得分:0)

很奇怪。可能你的回复中有一些隐藏的字符?无论如何,您可以尝试用br标签替换换行符:

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