我想從一個vaadin項目中的java類調用一個javascript函數。在過去,我使用RPC調用來做到這一點,但是這一次它只是一個我需要調用的js函數,而且我認爲我可以用類似JavaScript.getCurrent().execute("test()");
的方法做到這一點。所以我有一個vaadin項目和這裏就是我想從調用該函數的類:從vaadin中的java類調用一個javascript函數
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函數,我似乎隨時都會出現錯誤。任何想法?
'因爲我似乎總是有一個錯誤'照顧與我們分享這個錯誤? –
當然,我應該直截了當地道歉。這個錯誤實際上並非在java中,而是我在瀏覽器中得到的。我在構造函數中添加了這個調用:public void UploaderComponent(){ \t \t JavaScript.getCurrent()。execute(「test()」); \t \t formLayout.addStyleName(「myLayout」);' 因爲我不知道在哪裏添加它的說實話。無論如何,我認爲瀏覽器期待一個RPC調用,這裏是[鉻控制檯](http://pastebin.com/mFDLhduJ)中的錯誤(我必須使用pastebin,因爲它相當長) – antobbo