问题标签 [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 14 的主页是带有根 Route 的 MainView。
MainView
被用作另一个视图(带有layout = MainView.class
)的“模板”,所以我认为它更像是一个“抽象”视图,不应自行初始化,仅用于其他视图作为布局。
MainView
现在的问题是:如果用户BeforeEnterEvent
在构造函数之后访问。这可能会导致抛出异常,因为用户尚未经过身份验证,并且构造函数已经执行了诸如构建选项卡之类的操作。
有没有办法阻止用户访问 MainView 的路由或在调用构造函数之前执行的事件?仅当用户通过身份验证时才允许访问视图。
更新:
该修复程序作为Vaadin 14.2中的实验性功能发布。
java - {Java} Vaadin 14 - 检测用户离开(关闭选项卡、f5 等)
我目前正在使用Vaadin Flow 版本 14 ( https://github.com/vaadin/platform/releases/tag/14.0.0 )
我运行 Java 版本 1.8.0_231,64 位。
我只是希望能够在用户执行以下任一操作时检测到(在 java 中!):
- 关闭当前浏览器选项卡(或其浏览器)
- 在他们的键盘上点击 F5,或者在他们的浏览器中按下刷新按钮
- 单击链接(或其他任何内容),将它们从我的网站重定向
我已经尝试了很多不同的方法来检测这一点。到目前为止,我唯一能检测到的是当前 VaadinSession 到期时(我可以通过做来更改VaadinSession.getCurrent().getSession().setMaxInactiveInterval(15)
)。这使得每个会话在 15 秒后过期(在我的例子中,15 只是一个测试数字)。
使用Vaadin 8,我相信您可以做到这一点,并且开箱即用:
我不能使用这个,因为我使用的是Vaadin 14,而不是8。
我尝试将其添加到我的 View 类中:
它仅在会话到期时打印此消息(在我的情况下为 15 秒)。即使我不关闭页面。
我已经尝试实现BeforeLeaveObserver / BeforeLeaveListener并覆盖它:
这从不打印。
我也尝试了所有这些,但他们没有做我需要的:
1 addUIInitListener
当用户加载页面时打印。
1.1 addBeforeLeaveListener
从不打印。
2 addServiceDestroyListener
从不打印。服务与会话不同。有道理。
1.2
并3 addSessionDestroyListener
在一段时间后打印。需要15-30秒。
有没有办法基本上立即检测到这一点?:/
java - 使用插件导出 Vaadin 14 应用程序会引发 BeanInstantationException
我正在尝试导出使用插件(自动完成插件)的 Vaadin 14 应用程序,导出的应用程序似乎错过了插件,但我无法理解导出时我做错了什么。从 Eclipse 内部启动它非常有效。
首先我试图用'mvn clean package -Pproduction'导出应用程序,但即使应用程序在java控制台中似乎没有错误,我也在浏览器控制台中获取它们(TypeError:i.register不是一个函数)。该应用程序似乎已加载,但似乎缺少插件和某些样式。
从 IDE 内部
然后我尝试以我在 pom 上找到的目标(干净的包 -Dvaadin.productionMode)启动它,但出现了另一个错误,这次是在控制台上
org.springframework.beans.factory.BeanCreationException:创建名为“org.test.MainView”的bean时出错:bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [org.test.MainView]:构造函数抛出异常;嵌套异常是 java.lang.IllegalStateException:在使用“@JsModule”注释声明的任何模板文件中找不到带有标签“vcf-autocomplete”的元素的定义。检查 WAR 文件中模板文件的可用性或提供方法 getTemplateContent() 的替代实现,该方法应返回表示模板文件内容的元素
虽然解释似乎很详细,但我不确定如何继续,因为我只是使用插件,错误文本似乎暗示插件缺少某些东西。
如果我使用clean package -Pproduction -Dvaadin.productionMode生成应用程序,我会得到与第一个相同的行为(控制台TypeError 中的错误:i.register is not a function)
将插件导出/编译到应用程序中我缺少什么?
java - Vaadin-14:检查客户端是否是移动设备
我正在开发一个 web 应用程序,我想将桌面和移动设备的 UI 分开,所以我想检查使用我的应用程序的客户端是否是移动设备。
我试图在网上查找官方文档或 vaadin 论坛,但我找不到任何有用的信息,因为这些答案中提出的几乎所有解决方案都不再可实施(这些方法已被删除)。
java - 如何在 Vaadin 的另一个类中使用路由器布局类的变量/方法?
我正在使用Vaadin 14.0.3。我有一个MainLayout
方法类someCode
。我正在使用这个类作为另一个名为MainView
. someCode
是否可以在中使用该方法MainView
?这是示例:
谢谢!
performance - Vaadin 14.1.17 启动很慢
我正在测试从“开始”页面(此处)生成的空 Vaadin 项目
我面临着非常缓慢的启动时间(最多 6 分钟)而且我并不真正了解发生了什么,我尝试设置 vaadin.servlet.productionMode=true 但它并没有解决问题。
有没有办法生成更详细的启动日志?您可以在下面找到当前日志。
谢谢大卫
fullcalendar - Vaadin14 fullcalendar applyChangesOnEntry 返回错误的资源
我在使用 fullcalendar 时遇到了一些问题,我不知道如何解决这个问题。我的代码以前在带有 fullcalendar 1.9.2 的 vaadin 13 上工作。
我的代码:
});
pom.xml
这就是代码与 Vaadin 13 一起使用的方式:
- 从“资源 1”拖动事件
- 将事件放在“资源 2”上
- 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
- 将拖动的(资源 1)事件复制或移动到选定的(资源 2)资源(行)
这就是代码现在与 Vaadin 14 一起工作的方式:
- 从“资源 1”拖动事件
- 将事件放在“资源 2”上
- 显示带有三个选项(复制、移动、中止)的弹出窗口(用户选择一个)
- 将拖动的(资源 1)事件复制或移动到同一资源,因此它在同一资源(行)上复制事件
这里的问题是 applyChangesOnEntry 没有应用正确的资源。如何获得正确的资源?
vaadin - Vaadin 14 中的列标题中的文本是否可以换行到网格中的多行?
在上图中,我Grid
在 Vaadin 14 中创建了一个。请注意列标题未换行的红线。
我试图弄清楚是否有可能(并且安全/容易/标准)让列标签换行(例如,就像在 Excel 中那样)。
我和我的同事都不知道该怎么做。
java - {Java} Vaadin 14 - 将用户限制为 1(一)个活动 UI
我发布了这个问题java-vaadin-14-detect-user-leave-closes-tab-f5-etc但我想我问了错误的问题。
我想将每个登录用户限制为只有一 (1) 个活动浏览器选项卡或 UI。
有人告诉我使用,但每次用户刷新页面时VaadinSession.getCurrent().getUIs()
,此列表都会增加 1(如果启用,则增加 2 )。@Push
这意味着我无法检查此列表是否包含多个(或 2 个)。
我迷路了!使用本机 Java 应用程序和内置登录系统,我可以轻松地将每个用户限制为一 (1) 个会话。使用浏览器更难。或者也许不是?
java - Vaadin 14.1.17 - 获取图表中选择的元素 - Java
您好,我想知道如何从 Vaadin 14.1.17 的饼图中检索单击的元素。
我正在使用带有 DataSeries 和内部一些值的经典饼图,我想从点击侦听器中获取当前选定的项目
数据系列初始化
我试过阅读selected
里面的字段,DataSeriesItem
但它总是false
单击侦听器
输出
您对如何管理这个有任何想法吗?
谢谢大卫