0

所以我对下面的 JSP 代码有这个问题。

        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(out, "fat ..etc,该引用似乎妨碍了我,我不确定该怎么做。

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

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

谢谢

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

4

2 回答 2

0

尝试:

out.println("<td> <button type='submit' value='delete' onclick = deleteObj(out, '" + rs.getString(2) + "')>HI</button> </td>");
于 2013-05-15T09:26:03.450 回答
0

我看不到该代码如何呈现您链接的输出。它会呈现:

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

"
fat

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

您需要添加转义引号:

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)。这是您要使用的方法的更新链接

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

于 2013-05-15T09:34:03.680 回答