在不使用javascript的情况下单击html按钮时调用java方法

时间:2013-08-14 08:35:23

标签: java jsp

我在JSP上工作,我想在不使用<script></script>的情况下点击一个html按钮调用一个java方法(Function)。怎么做? 我试着写这段代码:

<button onclick="<%po.killThread();%>">
    <font size="4">Kill</font>
</button>

但它不起作用......所以请帮助我。

感谢

5 个答案:

答案 0 :(得分:3)

您误解了服务器端编程的工作原理。当您加载该页面时,网络服务器将转到第<button onclick="<%po.killThread();%>">行并立即解析并执行您的案例po.killThread()中的JSP代码段,并替换<%之间的所有内容{1}}和%>具有该方法的返回值(如果有)。所有这些都发生在服务器端,在客户收到任何东西之前。 (请注意,只有当服务器尚未加载该页并将其编译为Servlet时,才会发生这种情况。)

因此,客户端收到的HTML将类似于<button onclick="some return value or nothing">,这意味着当您按下按钮时不会发生任何事情。如果要在按钮上执行更多JSP命令,则需要向服务器发出新请求 - 例如,通过重定向页面。

答案 1 :(得分:1)

当你打开网站时,这将调用killThread函数。

尝试重定向到另一个调用该函数的jsp。

答案 2 :(得分:1)

这根本不会运行,因为在编译jsp页面之后它将返回po.killThread()值,但不会调用此方法

您可以通过查看页面来源

来查看此内容

答案 3 :(得分:1)

JSP是一种服务器端技术。我说服务器端了吗?

为了理解JSP如何工作并清除任何误解,JavaRanch Journal (Vol. 4, No. 2)The Secret Life of JavaServer Pages是一个非常好的读物。

摘录自

  
      
  • JSP是一种模板技术,最适合以与空白无关的格式提供动态文本文档。
  •   
  • JSP页面中的模板文本(任何不是动态元素的文本),包括所有空格和行终止符,都会成为最终文档的一部分。
  •   
  • JSP中的所有动态元素都在服务器上进行解释,一旦文档被发送到客户端,就不可能进行进一步的动态交互(不能请求相同或其他文档)。
  •   

答案 4 :(得分:0)

如果您正在使用JSP,那么要执行一些方法calles,您必须编写一个servlet,然后在servlet的doPostdoGet方法中调用该方法。

另一方面,如果您想简化操作,请使用JSF框架,这将帮助您实现目标,因为JSF支持事件处理。