[英]call a java method when Click on a html button without using javascript
我在JSP
工作,并且想在不使用<script></script>
情况下单击html按钮时调用java方法(函数)。如何? 我尝试编写这段代码:
<button onclick="<%po.killThread();%>">
<font size="4">Kill</font>
</button>
但这不起作用...所以请帮助我。
谢谢
您误解了服务器端编程的工作原理。 当您加载该页面时,Web服务器将进入<button onclick="<%po.killThread();%>">
,并立即解析并执行JSP代码段(在您的情况下为po.killThread()
,以及将<%
和%>
之间的所有内容替换为该方法的返回值(如果有)。 所有这些都发生在服务器端,即客户端收到任何东西之前。 (请注意,只有在服务器尚未将该页面加载并编译到Servlet中时,才会发生这种情况。)
因此,客户端接收到的HTML将类似于<button onclick="some return value or nothing">
,这意味着当您按下按钮时什么也不会发生。 如果要在按钮上执行更多的JSP命令,则需要向服务器发出新请求-例如,通过重定向页面。
打开网站时,它将调用函数killThread。
尝试重定向到另一个调用该函数的jsp。
这根本不会运行,因为在编译jsp页面之后,它将返回po.killThread()值,但不会调用此方法
您可以通过查看页面源代码来查看
JSP是服务器端技术。 我是说服务器端的吗?
为了理解JSP的工作原理并消除任何误解,《 JavaRanch Journal》(第4卷,第2期) : 《 JavaServer Pages的秘密生活》是一本很好的书。
摘录自同一
- JSP是一种模板技术,最适合以与空格无关的格式交付动态文本文档。
- 包含所有空白和行终止符的JSP页面(不是任何动态元素)中的模板文本将成为最终文档的一部分。
- JSP中的所有动态元素都在服务器上进行解释,并且一旦将文档发送到客户端,就不可能进行进一步的动态交互(缺少请求相同或另一个文档的要求)。
如果使用的是JSP,则必须执行一个方法调用,然后编写一个servlet,然后在servlet的doPost
或doGet
方法中调用该方法。
另一方面,如果您想简化事情,请使用JSF
框架,因为JSF
支持事件处理,因此它将帮助您实现目标。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.