比如像下面这样的代码,是当jsp页面执行时,动态的输出一段javascript的代码,groupName和groupID有可能改变。treeinfo里面为什么要加斜杠(\)呢?
- Java code
<%StringBuffer treeinfo = new StringBuffer();String groupName = "";String groupID = "";treeinfo.append("<script language=\"JavaScript\">var tree = new WebFXTree(\"Root\");");treeinfo.append("tree.add(new WebFXCheckBoxTreeItem(\""+groupName+"\",\"grouploadtree1.jsp?str="+groupID+";13\",\"\",\"\",\"\",\"\",\"\",\"\"));");out.print(treeinfo);%>
------解决方案--------------------------------------------------------
转义字符,表示其只不过是个字符,而非字符串定界符。
否则这么多双引号,你让人家怎么能知道哪些是字符串分割符,哪些是字符串的内容?
------解决方案--------------------------------------------------------
转义 :
如果要给字符串赋值为双引号或者反斜杠的话需要它,比如:
String str = "\"" ;//str 的值为: "
String str = "\\" ;//str 的值为: \
楼主可以写个简单的程序运行看看效果:
public class Test{
public static void main(String []args){
String str = "" ;
str = "\"" ;
System.out.println("双引号: " + str + " ");
str = "\\" ;
System.out.println("反斜杠: " + str + " ");
}
}
------解决方案--------------------------------------------------------
\",\是给"起到转义的作用,在字符串中可以出力"符号
------解决方案--------------------------------------------------------
treeinfo.append("webFXTreeConfig.setImagePath('js/images/');");
------解决方案--------------------------------------------------------
转义字符:
- Java code
1.\n 回车(\u000a) 2.\t 水平制表符(\u0009) 3.\b 空格(\u0008) 4.\r 换行(\u000d) 5.\f 换页(\u000c) 6.\' 单引号(\u0027) 7.\" 双引号(\u0022) 8.\\ 反斜杠(\u005c) 9.\ddd 三位八进制 10.\udddd 四位十六进制