VAADIN - 技术教程文章

Vaadin中用于标识shared state内部属性的annotation @NoLayout的作

要说@NoLayout,必须先说一下vaadin的server端产生state变化之后到了客户端这边,客户端会假设server端任何关于state的改变都会引起客户端组件的尺寸上的改变。但是有些情况并非如此,比如,当server端仅仅是更新了某个会被显示在客户端组件中的值,而并非客户端组件尺寸(或布局)。这时,在state中的那个仅仅用于改变客户端组件的显示值的成员变量就可以用@NoLayout来标注。这样,那个成员变量的值发生改变时,客户端不会去执行重...

java – Vaadin:一个合适的设计模式

我即将开始开发Vaadin Web应用程序,我还计划使用Spring IOC容器. 到目前为止,我知道它非常像Swing应用程序,我看到人们使用Presentation Model或MVC“like”模式. 如果你有Vaadin的经验,你可以建议我重新设计一个Vaadin框架结构的设计模式吗?可能是演示模型或MVP或MVC的略微修改版本吗?我还读到Vaadin提供了一些模式,它们是什么? 谢谢解决方法:就个人而言,我更喜欢使用MVP模式,它使代码保持良好和干净,并且适用于Vaadin应用程序....

java-Springboot,Vaadin和RestController【代码】

我用spring boot创建了一个新项目,其中包括vaadin和springmvc. 我添加了一个restcontroller类和一个用@Route注释的vaadin视图类,但是当尝试访问该视图时,我收到一个空白页和很多失败的http请求,其中包含对/ VAADIN和/ frontend路径的405访问代码. 删除restcontroller时,vaadin视图起作用.解决方法:解决方案是将servlet映射添加到vaadin资源:@WebServlet(urlPatterns = {"/VAADIN/*", "/frontend/*"},initParams = {@WebInitParam(...

javascript-在vaadin日期选择器中禁用整个月【代码】

我正在尝试在vaadin-date-picker中禁用所有月份的所有日期.浏览代码时,我发现可以通过在vaadin-month-calendar.html#L75中设置disable来单独禁用日期.在这种情况下,禁用日期会由于vaadin-month-calendar-styles.html#L119而变浅,并且无法再选择禁用日期. 同样,我做了以下工作,<div id="days" part="days" disabled><template is="dom-repeat" items="[[_days]]"><div part="date" today$="[[_isToday(item)]]" selected$="[[_dateE...

java-有没有一种方法可以使Vaadin中的标题显示在左侧而不使用FormLayout?【代码】

有没有办法在不使用FormLayout的情况下使Vaadin中的标题显示在左侧?我加粗了它,因为我试图避免这是第一个答案.我知道FormLayout提供了此功能,但是在某些情况下,我需要使用GridLayout之类的东西才能具有两列数据(例如,名字和姓氏,开始日期和结束日期,等等).解决方法:没有简单的方法可以做到,因为每种布局都会为其内部的组件生成适当的空间.您可以使用简单的CSS规则轻松更改由布局生成的“框”内标题和相应组件的顺序,但很难动态确定...

java-Vaadin Grid:如何在基于行的编辑器中将bean与LocalTime字段一起使用?【代码】

当我尝试使用基于行的编辑器(setEditorEnabled(true),缓冲模式)时,出现错误:Caused by: com.vaadin.data.util.converter.Converter$ConversionException: Unable to convert value of type java.time.LocalTime to presentation type class java.lang.String. No converter is set and the types are not compatible.at com.vaadin.data.util.converter.ConverterUtil.convertFromModel(ConverterUtil.java:116) ~[vaadin-server-...

javascript-Vaadin生成具有更改的列名的网格

我刚刚完成了Vaardin Tutorial,才意识到生成的网格的列名是大写的,例如,“ Birth Date”被拆分而没有这样做. 也许有人知道这是为什么,在哪里? 代号:https://github.com/PIumpsKIo/vaadinTestApp.git解决方法:uppercase and for example “Birth Date” is split without doing so.是的,这是默认行为.即,如果您的Bean中具有属性“ birthDate”,则标题中的默认标题为“出生日期”.如果您想在其中放置其他内容,则需要使用setCaption...

java-vaadin框架上的类似于jgraph的组件

目前,我正在开发一个流程管理器类应用程序,该应用程序需要jgraph(http://www.jgraph.com)类组件.流程管理器是一种流程流程图.我目前正在使用vaadin框架. vaadin中是否有可用的此类内置组件,或者我可以使用任何插件来创建拖放功能吗?我的应用的下拉图. 请让我知道是否有人已经这样做了.解决方法:我认为你可以在vaadin上使用带有Applet包装器的jgraph

java-什么是紧凑的,可嵌入的Servlet容器,适合与Vaadin一起使用?【代码】

我正在用Java开发桌面应用程序,我想使用vaadin作为它的用户界面(因此用户将通过Web浏览器访问它).我正在使用Maven,因此如果我的所有依赖关系都可以通过Maven(Vaadin是)获得,则是首选. Vaadin需要一个servlet容器,因此我需要找到一个可以嵌入我的应用程序中的servlet容器,这不会显着增加可分发文件的大小(我希望将其保持在几兆字节以下). 我查看了Jetty,但可以找到的Maven依赖项所支持的最新版本是5.1.10,这是古老的.有一个Maven插件...

java-如何通过Vaadin / Spring应用程序提供静态资源?【代码】

我有带有弹簧安全集成的Vaadin Web应用程序,用于身份验证. Vaadin servlet的配置非常简单:<servlet><servlet-name>Vaadin Application Servlet</servlet-name><servlet-class>com.example.SpringApplicationServlet</servlet-class><init-param><param-name>applicationBean</param-name><param-value>mainApplication</param-value></init-param><init-param><param-name>widgetset</param-name><param-value>com.example.widget...

java-如何在vaadin表上设置自定义排序器?【代码】

我想让我的表在排序时忽略字母大小写,因此我找到了this链接,但是我不知道在哪里可以真正使用新的ItemSorter来使表.解决方法:您需要将ItemSorter添加到表使用的容器中.两种容器类型公开#setItemSorter-IndexedContainer和AbstractBeanContainer. Vaadin表的默认容器是IndexedContainer. 以下代码段应将ItemSorter添加到表中.Container container = table.getContainerDataSource(); if (container instanceof IndexedContainer...

java-如何通过过滤在Vaadin 8网格页脚中计算总数【代码】

我知道我必须使用grid.getDataProvider()来获取ListDataProvider(假设我已将列表发送到grid.setItems()).用其他方法计算页脚总数:Collection myItems = ((ListDataProvider)grid.getDataProvider()).getItems(); for(MyItem myItem : myItems)total += myItem.getValue(); footer.getCell(footerCell).setText(format(total));但是,如果添加页脚会失败,因为它会计算网格中的所有项目.因此,例如,如果我添加:((ListDataProvider)gr...

java-如何在Vaadin 10中管理会话?【代码】

我在Vaadin 10中有一个处理文件的网页.如何使不同的用户拥有不同的会话?当我尝试在不同的浏览器中打开页面来处理文件时,我得到:java.lang.IllegalStateException: Cannot access state in VaadinSession or UI without locking the session.我在官方文档中找不到任何有用的信息或教程.目前,我正在浏览Baker App-但也找不到关于会话的任何信息. Vaadin版本:10.0.0.rc3Spring Boot版本:2.0.3.RELEASE爪哇:1.8解决方法:实际上,它...

java-Vaadin中的ENTER快捷键和TextArea【代码】

TextField f = new TextField(); Button b = new Button("Save"); b.setClickShortcut(KeyCode.ENTER); // For quick saving from text field itselfTextArea longText = new TextArea(); // "Enter" is garbled here是否热衷于使快捷方式仅在“发件人”文本字段中起作用?解决方法:使用焦点和模糊侦听器删除并添加快捷键:f.addFocusListener(new FocusListener() {@Overridepublic void focus(FocusEvent event) {b.setClickShor...

java – 如何获取Vaadin中的所有会话【代码】

我想知道有多少用户实时连接到我的应用程序.我有想法循环开放的会话数,但我找不到如何做到这一点.如果您有其他方法,欢迎提出建议.解决方法:到目前为止,我发现的最佳解决方案是在创建和销毁会话时对其进行计数.public class VaadinSessionListener{private static volatile int activeSessions = 0;public static class VaadinSessionInitListener implements SessionInitListener{@Overridepublic void sessionInit(SessionInitEve...

java – 为我的Vaadin Web应用程序启动和停止挂钩?【代码】

我怎么知道我的Vaadin 7网络应用程序何时首次启动/启动,所以我可以做一些初始设置工作? 同样,我怎么知道我的网络应用何时结束,关机/退出?解决方法:的ServletContextListener Vaadin建立在Java Servlet技术之上. “上下文”是Servlet术语中Web应用程序的技术术语.所以这里的答案不是Vaadin特有的,它适用于任何Servlet – 而在一天结束时,Vaadin只是一个大Servlet. 从Servlet规范版本2.3开始,诸如Tomcat,Jetty等Servlet container...

java – Vaadin – 如果我使用AbsoluteLayout,则不显示表数据【代码】

目前我面临着与Vaadin Table相当奇怪的问题.如果我在表中使用AbsoluteLayout数据没有显示,但如果我使用,即Horizo??ntalLayout,数据就会完美显示.这有效:import com.vaadin.annotations.AutoGenerated; import com.vaadin.ui.CustomComponent; import com.vaadin.ui.HorizontalLayout; import com.vaadin.ui.Table;public class MyComposite extends CustomComponent {@AutoGeneratedprivate HorizontalLayout mainLayout;@AutoGen...

java – vaadin中的一些大胆字符

例如,我有一句话:“Em?o”. 但斯洛文尼亚语中的“Em?o”字样显示为“Em?o”我想要显示Em?o这样的文字,没有大胆. 我对所有单词都有问题,例如单词中有“?”,“?”,“?”,“?”,“?”,“?”. 我没有用css风格或任何东西来改变这个词的大胆. 我正在使用Vaadin 7.6.3(Valo主题).应用程序在tomcat服务器8.0.3上运行.解决方法:问题在于捆绑的Open Sans字体,它不包含所有unicode字符,因此一些字符最终以不同的字体呈现(很可能是平台/浏览器...

java – 调整Vaadin图像的大小【代码】

我正在将文件中的图像插入到UI中.我按照these指令在Vaadin 7.6.8中创建它.String basepath = VaadinService.getCurrent().getBaseDirectory().getAbsolutePath(); FileResource resource = new FileResource(new File(basepath + "/WEB-INF/images/image.png")); Image image = new Image("", resource);但是我根本无法重新缩放图像或调整图像大小.图像始终以完整大小显示. 有没有一种方法可以缩小图像而不使用CSS?解决方法:您可以...

java – 基于内容的Vaadin 10网格样式个别行【代码】

我正在使用Vaadin网格显示传入信息并实时更新.我已经能够通过访问DOM来设置所有行的样式,如下所示:<dom-module id="my-grid" theme-for="vaadin-grid"><template><style>[part="row"] {height: 27px;font-size: 14px;max-height: 27px;}</style></template> </dom-module>我想要做的是根据行数据的内容为特定行设置特定样式.基本上我有一列布尔值,如果它是真的,我希望行有一个绿色背景,如果它是假的,我希望该行有一个红色背景.现在...

java – 如何阻止vaadin窃取所有url-patterns(和spring mvc很好地玩)【代码】

我有一个vaadin应用程序,我正在尝试提供一些由Spring MVC提供的REST URL – 我的web.xml在下面.我只在/ info获得404s – 似乎Vaadin窃取所有网址模式. 如果我删除Vaadin,我可以访问/ info并获取该网址的内容.如何让他们一起玩得很好?<context-param><param-name>contextConfigLocation</param-name><param-value>/WEB-INF/applicationContext.xml</param-value> </context-param><listener><listener-class>org.springframework...

java – 如何允许用户在vaadin表中拖放行?【代码】

我有一个包含自定义组件的多行的表.我想允许用户拖放行. 我尝试过以下代码,但无法拖动任何行:tblStructure = new Table(); tblStructure.setSizeFull(); tblStructure.setSelectable(false); tblStructure.setSortEnabled(false); tblStructure.setDragMode(Table.TableDragMode.ROW); tblStructure.setNullSelectionAllowed(true); tblStructure.setDropHandler(new DropHandler() {/*** */private static final long serialVers...

java – 在vaadin中调整CSS更改的选择方法是什么?【代码】

我正在努力处理vaadin中的一些小的布局更改,这必须在Java和Css端完成. 每次我需要调整布局的东西,如填充顶部,背景颜色或一个组件的粗体文本,我需要通过Java代码设置样式:userLink.setStyleName("textbold");我的styles.css(在VAADIN / themes / app /下)的更改将是:@import "../runo/styles.css";.textbold {font-weight: bold; } ...这是改变CSS的正确方法还是另一种方式?我可以这样做而不影响Java代码吗?解决方法:这是要...

java – 如何在Vaadin 8中设置DateField以根据用户的时区突出显示默认日期【代码】

我希望将DateField默认为我的用户的时区.我已经尝试过DateField.setZoneId(),但这似乎没有做任何事情.然后我尝试做DateField.setDefaultValue(LocalDateAdjustedForTimeZone),这主要是因为蓝框正确突出显示但是黑色轮廓仍然在服务器的时区下面.解决方法:据我所知,在Vaadin客户端组件VAbstractCalendarPanel #buildCalendarBody()中,没有办法影响今天的CSS样式v-datefield-calendarpanel-day-today.关于确定“今天”的客户端组件Jav...

java – 如何让vaadin不显示滚动条(当使用setSizeFull作为主布局时)【代码】

鉴于以下vaading示例应用程序:package net.kerba.vaadin7interface;import com.vaadin.annotations.Theme; import com.vaadin.annotations.VaadinServletConfiguration; import com.vaadin.server.VaadinRequest; import com.vaadin.server.VaadinServlet; import com.vaadin.shared.ui.label.ContentMode; import com.vaadin.ui.*;import javax.servlet.annotation.WebInitParam; import javax.servlet.annotation.WebServlet;/*...

java – Vaadin与Grails

我是vaadin的新手,几天前我已经下载了vaadin仪表板演示应用程序. http://demo.vaadin.com/dashboard/ vaadin quickticket演示应用程序 我发现它很棒,成为了vaadin的粉丝. 我是摇摆开发者,即将使用vaadin开始新项目.我对与vaadin的数据库通信感到困惑.我正在使用MySql数据库. 由于我没有盯着编写代码,有人可以指导哪种方法最好. >使用带有grails的vaadin >快速开发使用spring和hibernate.是否因为层数而影响任何性能?>我不知道grai...

java – 从Vaadin 8应用程序生成HTML页面,并在新窗口中打开【代码】

从我的Vaadin 8网络应用程序,我希望用户能够通过单击按钮在另一个窗口中打开报告.内容将由Vaadin应用程序使用纯HTML5而不是使用Vaadin小部件生成. Vaadin 8手册有一个页面Handling Browser Windows.它显示了使用BrowserWindowOpener对象打开一个新窗口.但是那个窗口包含一个Vaadin UI子类,而我想生成自己的HTML内容. 传递信息(例如数据库标识符值)的加值点.解决方法:这是一个完整的示例应用程序,内置在Vaadin 8.5.1中.我们在TextFi...

java – 在vaadin中自动完成?

我是vaadin的新手.如何在无法加载到内存中的大量数据上执行自动完成(实际上更像是谷歌建议),而是对每个关键事件执行JPA查询.是否可以捕获文本字段或组合框上的关键事件?解决方法:您可以查看Henrik Paul的SuperImmediateTextField,这是一个Vaadin插件,允许您在几秒钟内设置客户端到服务器的后延迟.从中可以看出它是常见的Java堆栈,以使流程尽可能顺畅.缓存,JPA请求或其他.几秒钟的延迟将至少略微减轻服务器端的负载.

javascript – 如何保证一个类永远不会暴露客户端与Vaadin【代码】

据我所知,Vaadin使用一些逻辑只显示UI代码,然后调用服务器通过Javascript访问代码.但是,假设我有一个监听器,例如一些引用其他类的代码.所以,假设我有类似的东西:PojoClass data = DatabaseClass.getDataFromDatabase(); doSomeProcessingOnData(data); .. myTextField.setValue(data.getSomeValue()); ..现在,我如何确保DatabaseClass背后的代码不会作为Javascript公开.我认为这恰好发生了,但更具体地说,怎么说doSomeProcessingOn...

java – 如何向线程池的旧线程提供当前的vaadin会话?【代码】

我在理解VaadinSession.getCurrent()的引用后面临一个问题Gets the currently used session. The current session is automaticallydefined when processing requests to the server and in threads startedat a point when the current session is defined (seeInheritableThreadLocal). In other cases, (e.g. from background threadsstarted in some other way), the current session is not automaticallydefined.具体以下几点...