单击按钮时如何运行javabean setproperty调用

时间:2013-10-11 07:19:29

标签: javascript jsp javabeans

我有一个链接到javabean的jsp,其中一些代码在每次单击一个按钮时使用jsp:setproperty将bean中的变量减少一个(它在单击按钮时运行的javascript函数内)。

但是,每次刷新页面时代码都会运行,而不是在调用函数时运行。 我很确定我知道为什么(jsp在服务器上运行,javascript在客户端运行,因此js无法与java代码接口),但我不知道如何正确地做这样的事情

我是一个javabean新手,所以我可能会忽略一些东西。

感谢。

编辑:我最终做了一些完全不同的事情,并使用this在javascript中创建一个隐藏的表单,将信息提交给不同的jsp并重定向回来。当我可以从URL参数中获取它时,它有点像用jsp代码共享javascript变量。

1 个答案:

答案 0 :(得分:0)

你是对的。 JavaScript在与JSP不同的执行环境中运行。为了更准确,您的JSP被编译成一个Java类(由容器),它具有与servlet类似的结构。您编写的所有JSP代码都将转换为Java并放入Java类的_jspService()方法中。当浏览器发出JSP页面请求(单击链接或刷新浏览器)时,容器调用Java类的_jspService()方法,执行所有已翻译的JSP代码并返回对浏览器的响应,通常在网页的形式。

因此,如果您的JSP包含将变量增加1的代码,则只有在您单击指向JSP的链接或刷新页面时才会执行此操作。

有两种可能的解决方案:

  1. 点击按钮后,JavaScript会刷新页面。
  2. 使用AJAX调用仅返回变量更新值的servlet。然后使用JavaScript将Web中的值替换为AJAX调用返回的值。
  3. 这个问题可能有助于AJAX:ajax call to servlet and redirect to jsp

    祝你好运。