我有两种类型的文本字符串需要转义:
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中
发布于 2017-03-28 12:04:01
问题解决了!而不是将代码直接放入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);https://stackoverflow.com/questions/43060009
复制相似问题