javascript - 从 vaadin 中的 java 类调用 javascript 函数

标签 javascript java vaadin vaadin7

我正在尝试从 vaadin 项目中的 java 类调用 javascript 函数。过去我使用 RPC 调用来这样做,但这次我只需要调用一个 js 函数,我想我可以用 JavaScript.getCurrent() 之类的东西来完成。执行(“测试()”); 所以我有一个 vaadin 项目,这是我想从中调用该函数的类:

package my.vaadin.project.vaadinUploader;



import com.vaadin.annotations.JavaScript;
import com.vaadin.ui.CustomComponent;
import com.vaadin.ui.TextField;
import com.vaadin.ui.VerticalLayout;

@JavaScript({ "https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js", "vaadin://js/script.js" })

public class UploaderComponent extends CustomComponent
{
    final TextField name;
    final TextField surname;
    //final Label div;
    final VerticalLayout formLayout = new VerticalLayout();

    public UploaderComponent(){

        formLayout.addStyleName("myLayout");
        //div = new Label();


        name = new TextField();
        surname = new TextField();
        name.setCaption("Type your name here:");
        surname.setCaption("Type your surname here:");
        formLayout.addComponents(name, surname);

    }


}

该脚本位于一个自定义文件夹中,但我不确定我可以调用该 js 函数的位置,因为我似乎总是遇到错误。有什么想法吗?

最佳答案

您的调用 JavaScript.getCurrent().execute("test()"); 是正确的,前提是方法 test() 被正确声明(这显然是不是这样的)。

假设 script.js 源代码包含您的 test() 函数的声明,您可能已将 script.js 放入错误的地方。

使用 vaadin:// 前缀,你的文件应该相对于 src/main/webapps/VAADIN 目录,所以在你的情况下 src/main/webapps/VAADIN/js/script.js

如果您省略了 vaadin:// 前缀(即 @JavaScript("script.js")),并且您使用的是 Maven,那么正确的该文件的位置是 src/main/resources/ 然后是您的 java 源所在的包结构。所以在你的情况下 src/main/resources/my/vaadin/project/vaadinUploader/script.js

另请注意,当您访问无法定位的 @Javascript 文件时,您会在控制台中收到警告。

关于javascript - 从 vaadin 中的 java 类调用 javascript 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38528851/

相关文章:

javascript - Amazon Alexa Skill Lambda Node JS - Http GET 不工作

javascript - Jquery 自动完成未填充文本框

java - 如何在 Jframe Swing 中将 JLabel 居中?

java - ActionListener 在单独的面板上绘制形状

java - 如何在Maven/Vaadin项目的服务器后台运行Java类?

java - Tomcat7检测内存泄漏

javascript - 透明 PNG 响应网站图像 slider 和内容

javascript - 从 Google Analytics cookie 获取当前用户/ session 浏览量?

java - 在类型转换 float 之前尽可能长时间地使用 double ?

keyboard-shortcuts - 在 Vaadin 中使用快捷方式的问题