在Vaadin 7中添加javascript / Jquery和客户端代码

我有3个问题:

  1. Vaadin中的每个动作都会调用服务器。 有没有办法避免每个动作调用服务器? 比如在客户端有代码用于多次使用的特定操作? 就像在CSValidation插件中一样。

  2. 我想知道如何在Vaadin 7中添加Javascript / JQuery。在Vaadin 6中看起来很容易。但是,我无法让它在Vaadin 7中运行。我希望他们现在能让它更容易。 谁能告诉我一些关于这方面的例子。 如果它是JQuery,它将帮助我很多。

  3. 而且也会

    。Javascript.getCurrent()执行( “”);

‘执行javascript’或’添加指定的脚本’到代码中。 这有助于我解决第二个问题吗?

1)Vaadin中的每个动作都会调用服务器。 有没有办法避免每次操作都调用服务器? 比如在客户端有代码用于多次使用的特定操作? 就像在CSValidation插件中一样。

这取决于客户端代码。 Vaadin是使用服务器端编程模型构建的,但如果您需要限制服务器调用量,则需要自己完成。 Vaadin 7使得包含第三方库变得相对容易,就像在Vaadin 6中一样。

2)我想知道如何在Vaadin 7中添加Javascript / JQuery。在Vaadin 6中看起来很容易。但是,我无法让它在Vaadin 7中运行。我希望他们现在能让它更容易。 谁能告诉我一些关于这方面的例子。 如果它是JQuery,它将帮助我很多。

在这里,您有一个很好的教程,介绍如何将jQuery与Vaadin 7集成: http : //java.dzone.com/articles/integrating-html-and-0

它基本上是创建一个JavascriptExtension类,这是解决方案的主要部分:

@JavaScript({ "https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.js" }) public class JavascriptJQueryExtension extends AbstractJavaScriptExtension { ... // Please see the link above for an example of implementation } 

路径可以是URL或jQuery库的内部路径。

3)’执行javascript’或’添加指定的脚本’到代码中。

将执行以下代码段,如Book of Vaadin 7( https://vaadin.com/book/vaadin7/-/page/advanced.javascript.html )中所述

 // Shorthand JavaScript.getCurrent().execute("alert('Hello')"); 

在当前处理的服务器请求返回后执行JavaScript。 (……)

我建议你好好看看Vaadin书。 它包含许多重要信息,通常有助于解决使用Vaadin时出现的大多数问题。

我不是Vaadin Framework的专家……

我可以告诉你,你的问题3是通过它运行JavaScript命令..

你也可以通过它运行jQuery命令..

但为此你必须在页面中包含jQuery ..

问题1:我可以说这是可能的,因为Vaadin具有覆盖function的function。

 JavaScript.getCurrent().addFunction("com.example.foo.myfunc", new JavaScriptFunction() { @Override public void call(JSONArray arguments) throws JSONException { Notification.show("Received call"); } }); Link link = new Link("Send Message", new ExternalResource( "javascript:com.example.foo.myfunc()")); 

现在缺少支持代码,您必须确定在每个操作上调用服务器的实际插件的function。 确保你是否覆盖了这个function..你需要在某些时候使用这个function..所以不要覆盖实际需要的function….

问题2,

是的,jQuery可以与vaadin一起使用,请参阅论坛

它说你可以像这个$wnd.JQuery一样直接调用jQuery

我希望这个能帮上忙…

Interesting Posts