0

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

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);

}

该解决方案适用于两者(能够将两个名称文本保存在数据库中)

1)详细信息-doublequote.jsp

2)详细信息-singlequote.jsp

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

4

1 回答 1

0

问题已解决!而不是将代码直接放在里面public ActionForward search (){}

在 JSP 文件中,分配装饰器类

<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>

在装饰器类中,MyDecorator.java

    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);
于 2017-03-28T12:04:01.393 回答