我在JSP
上工作,我想在不使用<script></script>
的情况下点击一个html按钮调用一个java方法(Function)。怎么做?
我试着写这段代码:
<button onclick="<%po.killThread();%>">
<font size="4">Kill</font>
</button>
但它不起作用......所以请帮助我。
感谢
答案 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的doPost
或doGet
方法中调用该方法。
另一方面,如果您想简化操作,请使用JSF
框架,这将帮助您实现目标,因为JSF
支持事件处理。