首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用JSP生成按钮故障

问用JSP生成按钮故障
EN

Stack Overflow用户
提问于 2013-05-15 17:11:17
回答 2查看 449关注 0票数 0

所以我在下面的JSP代码中遇到了这个问题。

代码语言:javascript
复制
        while(rs.next()){
                out.println("<tr>");
                out.println("<td>" + rs.getString(2) + "</td>");
                out.println("<td> <button type='submit' value='delete' onclick = deleteObj(out, " + rs.getString(2) + ")'>HI</button> </td>");
                out.println("</tr>");
        }

在这里,你可以看到函数看起来像onclick=“deleteObj(”..etc,"fat ..etc“),这个引号似乎挡住了去路,我不知道该怎么做。

http://i.imgur.com/Z1D81Cw.png

我还想知道服务器是如何知道deleteObj是一个JSP方法的。这不是与单击时调用javascript方法的格式相同吗?

谢谢

“就在第二个参数之前存在,这就是为什么我怀疑它失败了,但我不确定我能做什么。

EN

回答 2

Stack Overflow用户

发布于 2013-05-15 17:26:03

尝试:

代码语言:javascript
复制
out.println("<td> <button type='submit' value='delete' onclick = deleteObj(out, '" + rs.getString(2) + "')>HI</button> </td>");
票数 0
EN

Stack Overflow用户

发布于 2013-05-15 17:34:04

我不明白代码是如何呈现您所链接的输出的。它将呈现:

... onclick = deleteObj(out,value)'>Hi</button>其中的值是rs.getString(2),除非rs.getString(2)包含:

代码语言:javascript
复制
"
fat

在这种情况下,您需要转义引号和换行符(请参阅StringEscapeUtils.escapeEcmaScript

您需要添加转义引号:

代码语言:javascript
复制
out.println("<td> <button type='submit' value='delete' 
  onclick = 'deleteObj(out, \"" + rs.getString(2) + "\")'>HI</button> </td>");

不过,对这类代码要小心。如果rs.getString(2)中有引用怎么办?你也会想看看这个答案:How to escape apostrophe or quotes on a JSP ( used by javascript )。而here是你想要使用的方法的更新链接。

正如其他人指出的那样,这是一种非常糟糕的处理方式。您很少想在JSP中使用scriptlet。您希望控制器(或控制器后面的层)完成大部分工作。JSP只处理渲染。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16561040

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档