问题标签 [vaadin14]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 如何在 Vaadin 测试用例中为 GridElement 打开 GridDetail?
如果您单击 UI 中的行(如此处),我有一个简单VaadinGrid
的打开详细信息的方法。我使用 Vaadin 14.0.12。
不幸的是,我没有表格可以“单击”并在我的测试用例中打开详细信息。如果我自己单击该行,则会显示详细信息。如果我在我的测试用例中单击一行,则不会显示。知道为什么吗?
将详细信息添加到网格:
测试台-测试用例:
我使用当前版本的 geckodriver (Firefox) 来执行测试。Grid 不为空并且包含行。
寻找网格(工作正常):
我试图打开细节:
虽然细节不会在 UI 中打开。
官方文档提到了一种打开它的方法,但没有GridElement
提供这种方法。
您可以使用 setDetailsVisible() 方法以编程方式显示和隐藏项目详细信息,
vaadin - 在 Vaadin 14 应用程序中执行 JS 代码什么都不做
我试图在页面加载时进行简单的向下滚动。
我还尝试在窗口中添加一个侦听器:
但是在这两种情况下,页面加载时都没有发生任何事情。
java - 如何在 Vaadin 14 + Spring Boot 中构建工作 jar 文件?
我试图将我的 Vaadin14 项目运行到生产环境中,但我的应用程序找不到任何 vaadin 流组件。我有一个默认的 application.properties 和 POM,并从这里下载了它https://vaadin.com/start/latest。我已经试过了,
删除节点模块 mvn clean mvn clean install -Pproduction mvn clean package -Pproduction
我得到这个错误
如果构建失败,请检查是否安装了 npm 包。
修复构建删除node_modules
目录以重置模块。此外,您可以运行npm install
来修复node_modules
树结构。
TIA
java - 如何设置 DataProvider 从后端获取的元素数量?
我想将网格中的一些数据延迟加载到我的 Vaadin 视图中。网格行有时非常大,所以我想限制一次加载的行数,比如说 2。
我尝试使用DataProvider.fromCallbacks()
. 不幸的是,我没有得到我想要的结果,而且我对传递给该方法的两个函数有点困惑。
据我正确理解,传递的第一个函数描述了如何获取项目,第二个函数告诉 DataProvider 可以获取的最大可能数量的项目。
fromCallbacks(CallbackDataProvider.FetchCallback fetchCallback, CallbackDataProvider.CountCallback countCallback) 创建一个新的数据提供者,它使用回调从任何后备存储中获取和计算项目。
我尝试了以下方法,但它总是会导致获取很多项目。(列表中的 17 项导致提取 17 项,列表中的 120 项导致 50 个批次)
具有以下行为:
我必须调用Query 对象的getOffset()
and getLimit()
,否则会引发异常。如果我理解正确,那么限制会告诉应该获取多少个项目(在我的情况下目标是 2)但是对象是不可变的,所以我不能更改这个值(查询 API)?
tl;博士我如何告诉 DataProvider 一次只获取我的网格的 2 项?
编辑:我发现了与我的问题相关的 github 问题(#6072,#3830)
编辑 2:合并了一个 github 问题,因此更清楚 getLimit() 方法的工作原理:https ://github.com/vaadin/flow/issues/6996
java - 带有 Vaadin UI 的 Spring Boot 应用程序不断刷新屏幕
我有一个启动应用程序,我正在向其中添加一些杂物屏幕。我决定使用 Vaadin,在我将它部署到多节点生产环境之前,它似乎工作得很好。一旦进入 prod 环境,屏幕就会无缘无故地不断刷新。例如,在一个屏幕中有一个网格,当单击一行时,会弹出一个对话框,显示项目的详细信息。但是一旦弹出对话框,页面就会刷新无数次。
此论坛主题https://vaadin.com/forum/thread/17586129/routerlayout-causing-page-refresh是我正在使用的相同布局的示例,并描述了一个非常相似的问题。
我有一个扩展 VerticalLayout 的基本抽象类,所有具体类都扩展了这个基本抽象类。每个具体类都定义了自己的路由并使用一个通用的布局类。
我已经联系了 gitter、vaadin 论坛并在 github 中打开了一个错误,但据我所知,没有来自 Vaadin 的人想要回应任何事情。
以下是我正在使用的所有版本: Vaadin Flow 版本:14 Java 版本:12.0.1+12 操作系统版本:Mac 10.14.5 浏览器版本:Fire Fox 70.0.1,Chrome 78.0.3904.97
我的实现中的代码片段:主视图
基础组件:
混凝土构件:
java - 使用 Java 8 Stream 的 DataProvider 查询中的 IndexOutOfBoundsException
我想从后端延迟加载过滤后的数据。如果我应用从后端返回 1 个元素(或未应用过滤器)的过滤器,一切正常。
OutOfBoundsException
如果获取的项目超过 1,它开始崩溃/抛出 a 。我使用官方 Vaadin 文档作为我的实施指南。
异常被抛出。filter()
Stream-API 的方法。我也知道异常的含义,尝试访问值的索引> = List 的最大大小,但我不知道如何解决这个问题。将限制设置为第一个查询的 limit-1 并没有解决它。
我认为我在回调中的第二个查询做错了,但我无法弄清楚问题是什么。是 Stream-API 问题还是第二个回调查询无法正常工作?
产生:
堆栈跟踪:
java.lang.IndexOutOfBoundsException:在 java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex( Preconditions.java:70) 在 java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) 在 java.base/java.util.Objects.checkIndex(Objects.java:372) 在 java.base /java.util.ArrayList.get(ArrayList.java:458) 在 com.vaadin.flow.data.provider.DataCommunicator.lambda$getJsonItems$3(DataCommunicator.java:611) 在 java.base/java.util.stream。 IntPipeline$1$1.accept(IntPipeline.java:180) at java.base/java.util.stream.Streams$RangeIntSpliterator.forEachRemaining(Streams.java:104) at java.base/java.util.Spliterator$OfInt.forEachRemaining( Spliterator.java:699) 在 java。base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:484) 在 java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:474) 在 java.base/java.util.stream。 ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:913) 在 java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234) 在 java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline. java:578) 在 com.vaadin.flow.data.provider.DataCommunicator.getJsonItems(DataCommunicator.java:613) 在 com.vaadin.flow.data.provider.DataCommunicator.collectChangesToSend(DataCommunicator.java:556) 在 com.vaadin .flow.data.provider.DataCommunicator.flush(DataCommunicator.java:473) 在 com.vaadin.flow.data.provider.DataCommunicator.lambda$requestFlush$2f364bb9$1(DataCommunicator.java:421) 在 com。vaadin.flow.internal.StateTree.lambda$runExecutionsBeforeClientResponse$1(StateTree.java:364) at java.base/java.util.ArrayList.forEach(ArrayList.java:1540) at com.vaadin.flow.internal.StateTree.runExecutionsBeforeClientResponse (StateTree.java:361) 在 com.vaadin.flow.server.communication.UidlWriter.encodeChanges(UidlWriter.java:392) 在 com.vaadin.flow.server.communication.UidlWriter.createUidl(UidlWriter.java:182) 在com.vaadin.flow.server.communication.UidlRequestHandler.writeUidl(UidlRequestHandler.java:116) 在 com.vaadin.flow.server.communication.UidlRequestHandler.synchronizedHandleRequest(UidlRequestHandler.java:89) 在 com.vaadin.flow.server。 SynchronizedRequestHandler.handleRequest(SynchronizedRequestHandler.java:40) 在 com.vaadin.flow.server.VaadinService.handleRequest(VaadinService.java:1540)在 org.eclipse.jetty.servlet.ServletHolder.handle 的 javax.servlet.http.HttpServlet.service(HttpServlet.java:750) (ServletHolder.java:760) 在 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1617) 在 org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:226) 在org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:545) 在 org.eclipse.jetty.server.handler 的 org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1604)。 ScopedHandler.handle(ScopedHandler.java:143) 在 org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:536) 在 org.eclipse.jetty.server.handler.HandlerWrapper。org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235) 的句柄(HandlerWrapper.java:127) org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1592)在 org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233) 在 org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1296) 在 org.eclipse.jetty.server .handler.ScopedHandler.nextScope(ScopedHandler.java:188) 在 org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:485) 在 org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java :1562) 在 org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186) 在 org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1211) 在 org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) 在 org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:221) 在 org.eclipse.jetty.server.handler。 HandlerCollection.handle(HandlerCollection.java:146) 在 org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:717) 在 org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection. java:146) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127) at org.eclipse.jetty.server.Server.handle(Server.java:500) at org.eclipse.jetty .server.HttpChannel.lambda$handle$1(HttpChannel.java:386) 在 org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:562) 在 org.eclipse.jetty.server.HttpChannel.handle(HttpChannel. java:378) 在组织。eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:270) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311) at org.eclipse.jetty.io.FillInterest.fillable( FillInterest.java:103) 在 org.eclipse.jetty.io.ssl.SslConnection$DecryptedEndPoint.onFillable(SslConnection.java:543) 在 org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:398)在 org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) 在 org.eclipse.jetty.io 的 org.eclipse.jetty.io.ssl.SslConnection$2.succeeded(SslConnection.java:161)。 ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce (EatWhatYouKill.java:313) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129) 在 org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171) 在 org .eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:388) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) at org.eclipse.jetty.util .thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) 在 java.base/java.lang.Thread.run(Thread.java:834)388) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) 在 java.base /java.lang.Thread.run(Thread.java:834)388) 在 org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:806) 在 org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:938) 在 java.base /java.lang.Thread.run(Thread.java:834)
spring-boot - 用于 Vaadin 应用程序的 Spring Boot 2.2.x 中的 Okta 身份验证
这是指为使用 Spring Security 进行基于 okta 的身份验证的 Spring boot 2.2.x 运行的 Vaadin 14 进行概念验证。同样,看起来框架内有内部后续调用正在调用,这些调用未能通过身份验证并给出 SecurityException。
server.servlet.context-path:/myapp
安全配置.java
pom.xml
SecurityUtils.java
twitter-bootstrap - 如何在 Vaadin 14 应用程序中包含自定义 SASS 文件?
我正在 Maven 上开发 Vaadin 14 应用程序,所以我正在使用vaadin-maven-plugin
它,根据 Vaadin 的 v14 入门应用程序:
负责同步 java 依赖项和 package.json 和 main.js 文件中的导入。如果尚不存在,它还会创建 webpack.config.js。
运行应用程序后,我得到了package.json
文件和node-modules
根目录上的 。之后我执行npm install bootstrap
并在其中创建了一个自定义 SCSS 文件src/main/webapp/frontend/
,其中包含一些精心挑选的@import
说明来获得我自己的 Bootstrap 版本。
Vaadin 关于包括样式表的文档没有提到任何关于 SCSS 的内容。如何让 Vaadin 的 Maven 插件编译我的 SCSS 文件,以便将生成的 CSS 文件导入我的应用程序?
java - Vaadin GridPro:“TypeError:无法读取未定义的属性‘localName’”
我最近搬到 Vaadin 14,现在正在尝试使用com.vaadin.flow.component.gridpro
. 如果我现在使用com.vaadin.flow.data.renderer.ComponentRenderer<>
呈现行详细信息,单击生成的详细信息时会收到以下错误消息(通知):
TypeError:无法读取未定义的属性“localName”
虽然没有任何 Java 异常,但 Chromium 记录了以下内容:
我知道,使用com.vaadin.flow.component.grid.Grid
代替时不会发生这种情况,com.vaadin.flow.component.gridpro.GridPro
但我的问题是如何在使用时摆脱这个错误GridPro
?
重新创建我的问题:
从原型创建一个新的 Vaadin 14 项目:
改成MainView.java
这样:
java - Vaadin 14 - 找不到 BeanManager 类
我正在为工作中的概念产品测试 Vaadin 14。我已经确保安装NodeJS (V13.3.0)
and NPM (6.13.1)
,并将其包含在我的POM.xml
文件中。我目前正在使用JRE and JDK V1.8.0.231
设置完所有内容后,我在运行的服务器上运行了项目Tomcat 8.5.49
,并找到了ClassNotFoundException
:
清理项目文件夹、服务器和更新 Maven 项目后,我没有看到任何改进。
这是Pom.xml
:
我想解决这个问题,ClassNotFoundException
因为它不允许我查看我请求的任何页面。如果您需要更多信息来帮助我,请询问,我将提供尽可能多的信息。