处理三种类型的报价

Handling three types of quotes

我有一个 JSP 文件,它也使用 JavaScript 进行某些操作。 要显示填充的文本输入字段,我使用:

String s="theValue";
out.println("<input type='text' value='"+s+"' name='nameField' id='name' onchange=doSomething('str2','str1')/>");

但是如果我不把 doSomething(str1,str2) 放在 qoutes 下就不行了。

我是否被迫使用三种引号? 有没有其他方法可以解决这个问题?

我不是 JSP 专家,但你能不能像这样转义引号?:

out.println("<input ... onchange=\"doSomething('str2','str1')\"/>");

或者换个说法:

out.println('<input type="text" value="'+s+'" ... onchange="doSomething(\'str2\',\'str1\')"/>');

或者使用模板,只在必要时输出动态内容,其余的作为标准 HTML。

<input type="text" value="<%= s %>" onchange="doSomething('str1', 'str2)"/>