问题标签 [vaadin21]

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.

0 投票
1 回答
117 浏览

routes - Vaadin (Flow) 21 从 20 升级 - 所有路线突然返回 404

我最近尝试从 Vaadin 20 升级到 Vaadin 21。我按照升级指南进行操作,一切似乎都很好地开始,没有任何错误消息。但是当我尝试导航到任何路线时,只有我的路线MainLayout被加载并且里面的所有内容都加载了未找到的页面(对于每条路线),日志中没有错误消息。在我看来,无论是可公开访问还是登录,路线都没有正确填充。

堆:

  • 瓦丁 21.0.2
  • 春季启动 2.4.4
  • JDK 11

示例页面的标题配置:

未找到页面:

我的路由定义是否有问题,或者安全配置从 Vaadin 20 到 21 有什么变化?

0 投票
2 回答
116 浏览

vaadin - 最新的 Vaadin Start 生成的应用程序 - 带有流/混合视图的主布局主题中的错误?

我使用最新的 Vaadin Start 页面生成了一个应用程序框架(Vaadin 21 / Java 11)到目前为止它工作正常,我使用具有各种视图的混合模式。

单击菜单中的视图链接时,仅基于 TS+HTML 的视图将在 GUI 中注册为已选择并获得彩色的“选定/活动”样式。

当我生成一个只有 Flow 视图的应用程序时,第一个视图将被选中的样式卡住,但其他视图在单击时会正确注册。

只有当我生成一个只有 Fusion 视图的应用程序时,所有视图选择才会正确注册。

我想这是一个错误?

编辑:混合模式下的行为视频。菜单项名称对应于正在选择的视图类型。如您所见,只有融合视图在菜单中显示“选择”:

行为视频

Edit2:我认为问题是在这里引起的:

似乎 appStore.location 不是从非 Fusion 视图中设置的。我在 index.ts eventListener 中放置了一个 console.log,非 Fusion 视图都只是将“(.*)”作为视图名称/位置传递,这就是失败的原因。

因此,java-class 中的 @Route(value = "view-name") 声明目前似乎没有正确传递。

BR丹尼尔

0 投票
2 回答
130 浏览

spring-boot - Vaadin 21 迁移到基于视图的访问控制 - RolesAllowed 不起作用

这是这个问题的后续问题

我将我的 Vaadin 20 应用程序迁移到 21 以使用基于视图的访问控制。注释@PermitAll@AnonymousAllowed工作正常。但是,当我尝试将路由限制为特定用户角色时,@RolesAllowed我无法访问此站点(使用具有此角色的用户登录)。是否需要一些特殊代码才能让 Vaadin 识别我经过身份验证的用户的角色?

角色限制页面:

安全配置

0 投票
1 回答
64 浏览

vaadin - Vaadin 21 和 ApplicationLayout 的滚动问题

我对需要滚动的应用程序布局和视图有一个奇怪的问题:

如果我使用默认的应用程序布局创建一个应用程序,则抽屉切换位于顶部,我添加了一个具有全尺寸的 VerticalLayout 作为视图,一切都按预期工作。但是,如果垂直内容超过了浏览器窗口的高度(即使我将此内容放入滚动条中),整个视图都会滚动并消失在切换开关的后面,直到达到切换的高度,然后滚动停止。它的接缝setHeight(100, Unit.Percentage)不考虑肘节的高度。

有人有类似的问题吗?

编辑

将以下代码作为视图放入 AppLayout 并在您的移动设备(例如 iPhone)上打开它,您将看到垂直滚动条:

应用布局:

0 投票
1 回答
64 浏览

java - Vaadin 21/Fusion - 从 Java 枚举生成的 ts 枚举模块将所有驼峰式大小写值更改为大写

我在尝试将组合框绑定到我的模型时遇到了这个问题。枚举值在后端提交到我的端点类时为空。

Java 枚举如下所示:

但是生成的 ts 枚举看起来像这样:

所有值都更改为大写,这就是绑定器无法匹配具有驼峰写法的绑定器的原因,从而导致该字段为空值。

这可以配置,这是设计使然,还是这是一个错误?

谢谢&BR丹尼尔

0 投票
2 回答
313 浏览

macos - 在 M1 上的 MacOS 12 Monterey 上的开发模式下 Vaadin / Webpack 出错

自从升级到 MacOS 12 / Monterey 后,尝试在开发模式下运行我的应用程序时遇到错误。

为了验证这个问题,我从 start.vaadin.com 创建了一个全新的 Starter App。我使用了 JDK 11 和 Vaadin 21,因为这是我的其他项目使用的。

我正在使用 IntelliJ Ultimate 进行开发

当我尝试从 IntelliJ 中启动我的项目时,正如我之前多次这样做的那样,项目启动,开始像往常一样编译前端,正在写入“前端编译成功”,然后失败并显示以下消息

而且我无法访问该网页。从命令行以生产模式启动时,一切正常。

谁能给我一些指示这里出了什么问题?

0 投票
1 回答
94 浏览

vaadin - Vaadin 21 菜单栏与导航选项卡

上下文:Vaadin 21,Java 8。

在 Vaadin 21 示例应用程序(来自https://start.vaadin.com/app/)之上,我编写了自己RouterLayout的导航栏,中间是正文,底部是页脚(作为MainLayout示例中的交换应用)。

在导航栏中,我放了一个MenuBarhttps://vaadin.com/docs/latest/ds/components/menu-bar),其中包含一些RouterLinks。

当用户单击RouterLinks 中的一个时MenuBar,整个页面都会刷新,并且 my 也RouterLayout被重新实例化(= 调用构造函数)。

当我MenuBar通过一个Tabs组件(https://vaadin.com/docs/latest/ds/components/tabs)交换时,然后像以前一样单击RouterLink只是交换正文中的内容RouterLayout(如预期的那样)。

我在https://vaadin.com/docs/latest/ds/components/menu-bar知道这个提示,但我不知道为什么MenuBar和之间有区别Tabs

菜单栏不应用于导航。使用选项卡在内容之间切换,或使用锚元素进行常规导航。

所以我的问题是:

  1. 为什么导航之间MenuBarTabs导航之间存在差异(页面刷新),即使我RouterLink在两种情况下都使用相同的代码进行创建?
  2. 为什么MenuBar不应该用于导航?
  3. 有没有办法在不刷新页面的情况下进行导航MenuBar
0 投票
2 回答
62 浏览

vaadin - Vaadin 21 流。如何迁移曾经有一个带边框的面板的 CustomLayout

使用 vaadin 7(我们正在尝试迁移到 v21,非常非常困难)我们有这个

基本上是一个带有边框和标题边框的面板我们如何在 vaadin flow v21 中做到这一点

提前致谢

0 投票
1 回答
76 浏览

java - 在 Vaadin 20 中运行良好的 HTML 图标在 Vaadin 21 中运行良好

在 Vaadin 20 中,我可以添加一个图标作为 Java 组件:

add(new Icon("vaadin", "check));

或在 HTML 中:

<iron-icon icon=vaadin:check></iron-icon>

除了 Vaadin 版本,在 Vaadin 21 中,第一个显示一个图标,第二个是空白的。我已经浏览了 Vaadin 21 文档,但我看不到有关格式更改的任何内容,这是怎么回事?

0 投票
1 回答
82 浏览

java - Vaadin 21 查看角色

我想将我的 Vaadin 应用程序重写为 Vaadin 21。使用 Vaadin 入门构建器 ( https://vaadin.com/start ) 我创建了一个简单的应用程序。目前我的主要斗争是将我的简单应用CustomAuthenticationProvider到安全管理器以能够使用@RolesAllowed({ "user", "admin","USER"}) 注释。

我的 AuthToken 在其他地方生成的主要问题...... 它在某处生成一个空的授权权限并忽略我的自定义 AuthProvider 代码。

问题:如何很好地处理基于角色的访问控制?

我可以正确使用此注释的地方:

登录后控制台:

SecurityConfiguration.java

CustomAuthenticationProvider.java