vaadin - Component.setVisible() 方法如何工作?

标签 vaadin vaadin7 vaadin8 vaadin6

我对 GWT 有一些经验。在 GWT 中, widget.setVisible() 方法将为小部件添加 style="display:none" 样式。但 vaadin 的组件不会。我检查了 firebug ,当将组件的可见设置为 false 时,我看不到我的组件。为什么 ?

我认为应该也有隐藏样式而不是不包含。我意识到 vaadin 的代码是服务器端的。但有时,如果我只想隐藏(将样式显示设置为无),是否有办法完成此操作而不是使用 css ?

我不明白不添加组件setVisible(false)之间有什么区别?

最佳答案

正如您已经注意到的,不可见组件不会从服务器传输到浏览器,并且从浏览器的角度来看该组件不存在。这种方法有以下好处:

  1. 从服务器到客户端传输的数据更少
  2. 安全性:用户无法使用 Firebug 等工具检查不可见组件生成的 HTML,因为浏览器中不存在这些组件。

所以基本上从浏览器的角度来看,这与您根本不将其添加到 UI 中是一样的。但通常切换组件的可见性比在其父级中添加和删除组件更容易。

如果您想使用 CSS 隐藏组件,您可以通过定义自己的主题并为其添加样式来实现。然后只需使用 addStyleName 方法为要隐藏的组件应用样式即可。

关于vaadin - Component.setVisible() 方法如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25073085/

相关文章:

java - 如何刷新 CDIView 以反射(reflect)在另一个 CDIView 中所做的更改?

javascript - 如何在浏览器关闭或选项卡关闭时销毁 Vaadin 8 session ?

瓦丁网格 : Show all rows

java - 如何删除 Vaadin 8 ComboBox 中的按钮?

vaadin - 在 Vaadin 8 中刷新 DataProvider for Grid 中的项目,并实现 `getId` 方法

java - 向 v-ol3 (Openlayers4) 的 OLMap 添加新监听器

java - Guice:在 ServletModule 中注入(inject)拦截器

java - 为 Vaadin ListBox 选择显示字段

java - 如何使用 vaadin testbench 等待元素出现或消失

grails - 如何在用GGTS/Eclipse创建的Grails项目中替换依赖项?