StringEscapeUtils.escapeJavaScript转义单引号

StringEscapeUtils.escapeJavaScript转义单引号,javascript,java,jsp,stringescapeutils,Javascript,Java,Jsp,Stringescapeutils,我有两种类型的文本字符串需要转义: 1) name=ALICE“(双引号) 2) name=ALICE'(单引号) 这是我的代码: if (name.indexOf('\'') >= 0){ name=StringEscapeUtils.escapeJavaScript(name); System.out.println("escape by javascript " + name); } else { name=StringEscapeU

我有两种类型的文本字符串需要转义:

1) name=ALICE“(双引号)

2) name=ALICE'(单引号)

这是我的代码:

if (name.indexOf('\'') >= 0){
        name=StringEscapeUtils.escapeJavaScript(name);
        System.out.println("escape by javascript " + name);

} else {
        name=StringEscapeUtils.escapeHtml(name);
        System.out.println("escape by html" + name);

}
该解决方案对这两种情况都能正常工作(能够在数据库中保存两个名称文本)

(一)

(二)

但是,显示有点不正确。如何在转义单引号时隐藏反斜杠字符?我希望jsp显示ALICE',如果ALICE\',请确保能够将结果保存在db

中。问题已解决! 而不是将代码直接放入
public ActionForward search(){}

在JSP文件中,分配decorator类

<display:table sort="list" style="width: 100%" cellspacing="1" cellpadding="2" class="mydataTable" excludedParams="*" name="custTable" defaultsort="1" defaultorder="ascending" requestURI="<%=uri%>" pagesize="20" decorator="com.aza.util.MyDecorator">            
        <display:column style="width: 150px;" titleKey="customer.name" property="name" sortable="true" headerClass="sortable tabledisplay"/>    
    </display:table>

在显示unescape该字符串时
StringEscapeUtils.unescapeJavaScript(名称);
如果我这样做:StringEscapeUtils.unescapeJavaScript(名称),我无法将结果保存在dbYou save in DB which String escape,同时显示您可以取消scape。Hi@soorapadman..感谢您的输入..我已经解决了这个问题,将代码放在编辑事件之前..之前,我将代码放在搜索事件下
    MyModel cusModel = (MyModel) getCurrentRowObject();
    StringBuffer buf = new StringBuffer();

    String customerName=cusModel.getName();

    if (customerName.indexOf('\'') >= 0){
        customerName=StringEscapeUtils.escapeJavaScript(customerName);          
    } else {
        customerName=StringEscapeUtils.escapeHtml(customerName);            
    }

    cusModel.setName(customerName);