Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/gwt/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在瓦丁自动完成?_Java_Gwt_Jpa_Autocomplete_Vaadin - Fatal编程技术网

Java 在瓦丁自动完成?

Java 在瓦丁自动完成?,java,gwt,jpa,autocomplete,vaadin,Java,Gwt,Jpa,Autocomplete,Vaadin,我是瓦丁的新手。如何对无法加载到内存中的大量数据进行自动完成(实际上,更像谷歌建议),而是对每个关键事件执行JPA查询。是否可以在文本字段或组合框中捕获关键事件?您可能会发现这很有用。我想这在6.5中得到了修正。如果您想检查,还有一个 你需要考虑这一点,尽管 字段值->json->VAADINservlet->服务(spring/ejb/pojo或其他)->JPA->查询->结果列表(最初可能很大) 每次按键都会返回到浏览器 想想最终用户的打字速度。当第一次击键的响应从服务器返回时,用户可能已经

我是瓦丁的新手。如何对无法加载到内存中的大量数据进行自动完成(实际上,更像谷歌建议),而是对每个关键事件执行JPA查询。是否可以在文本字段或组合框中捕获关键事件?

您可能会发现这很有用。我想这在6.5中得到了修正。如果您想检查,还有一个

你需要考虑这一点,尽管

字段值->json->VAADINservlet->服务(spring/ejb/pojo或其他)->JPA->查询->结果列表(最初可能很大)

每次按键都会返回到浏览器


想想最终用户的打字速度。当第一次击键的响应从服务器返回时,用户可能已经完成了整个单词。

您可以查看Henrik Paul's,它是一个Vaadin附加组件,允许您以秒为单位设置客户端到服务器的延迟。从这一点开始,它的公共Java堆栈可以使流程尽可能平滑。缓存、JPA请求或其他。几秒钟的延迟至少会稍微减轻服务器端的负载。

即时文本字段应该是您要查找的内容。请看一下采样器演示:

如果您不想编写自定义客户端小部件或包含其他附加组件,可以稍微调整Vaadin的组合框,使其从数据库加载建议。要实现这一目标,您基本上需要做三件事:

  • 子类com.vaadin.ui.ComboBox并覆盖其受保护的方法 ComboBox#buildFilter()和您自己的实现
  • 使用非常简单的方法实现接口com.vaadin.data.Container.Filter 功能受限:您的筛选器只需传输 当前用户输入
  • 编写com.vaadin.data.Container的实现,以执行 实际的过滤器逻辑

  • 我更详细地描述了如何执行此操作。

    也许可以签出此插件:

    附带:

    服务器通信延迟,例如,等待用户完成键入n毫秒

    类似“在此处键入查询”的占位符文本


    查询服务器时输入的最小长度

    您可能只想在输入了3个左右的字母后(如果可能)启动自动完成功能,这样您就不会返回大量的列表。并且不向用户显示完整的建议集。只是一些关于自动完成的一般想法。