2016-11-30 70 views
0

我是jsp的新手。在jsp方面,我有一个按钮capture,我的目标是当我点击按钮时,我的jsp代码会在java端调用callCapture()。当我编译程序时,编译器生成以下的错误消息无法在jsp中调用javascript中的java方法

不能在<%的捕获使静态参考非静态方法callCapture() 从型捕获

。 callPlay();%> in jsp。我想我已经设置了相关的变量为静态,所以我不知道为什么它仍然给我这个错误信息。第二个问题是,我不是我正在做的是从JavaScript中调用java方法的正确方法。先谢谢你。

Java代码:

public class Capture extends JFrame { 
    public static JButton capture = new JButton("Capture"); 
    public static ActionListener captureListener; 
    ....... 
} 

public Capture() { 
    ...... 
    capture.setEnabled(true); 
    captureListener = 
     new ActionListener() { 
      public void actionPerformed(ActionEvent e) { 
       ..... 
      } 
    }; 
} 

public static void callCapture() { 
    capture.addActionListener(captureListener); 
} 

JSP:

<body> 
    <button onlick = "capature()">capture</button><> 
</body> 

<script type="text/javascript"> 
    function capture() { 
     <%Capture.callCapture();%> 

    } 
</script> 
+0

你不能这样做,在所有。您需要了解客户端代码和服务器端代码之间的区别。 – SLaks

回答

0

我改成

<%= Capture.callCapture()%>

和错误消息消失了。

+0

但是,我仍然不确定这是做这件事的好方法。 – vkosyj

0

您可以使用EL,试试这个:

${Capture.callCapture()}