我是Java开发人员,我将开始新项目.我的客户端开发技能非常有限,这就是为什么我真的很喜欢Vaadin框架的想法.我已经评估了Vaadin 10 Bakery App Starter应用程序https://vaadin.com/start#vaadin10,并且为了使这个应用程序启动并运行而自定义的HTML/CSS/JavaScript数量让我感到惊讶.现在我真的很困惑,不明白它如何简化开发人员的生活.
我现在可以作为项目启动器使用的唯一应用程序是着名的QuickTickets Dashboard https://demo.vaadin.com/dashboard/,其中所有UI都是纯Java实现的.目前最大的问题是这个应用程序是在Vaadin 8上实现的,我无法为Vaadin 10找到它的版本.你有类似Vaadin 10的东西吗?如果不是,您是否有从Vaadin 8到Vaadin 10的迁移指南,我可以使用它来尝试将此应用程序移植到Vaadin 10?
对于 Vaadin 14.1.23 TextFields,我想在视觉上区分红色错误消息(例如“此值太大。”)和黄色警告(例如“系统会将您的输入四舍五入到两位小数。”)。也可以选择蓝色信息消息。
因此,我创建了一个带有验证器的 TextField,如本例所示(https://vaadin.com/components/vaadin-text-field/java-examples/validation):当您在标签为“Min 2”的字段中输入“1”时个字符”,然后该字段变为红色并显示错误:“最少 2 个字符”。
显示这样的(黄色)警告消息怎么样?
我尝试的是这样的:在验证器的 apply 方法中,我创建了一个带有 ErrorLevel WARNING 的验证结果,如下所示:
ValidationResult.create("System will round the decimals.", ErrorLevel.WARNING);
Run Code Online (Sandbox Code Playgroud)
但 Vaadin 仍然生成了一个带有 part="error-message" 的 div:
<div part="error-message" aria-live="assertive" aria-hidden="false" id="my-field-error-44">System will round your input to two decimals.</div>
Run Code Online (Sandbox Code Playgroud) 序言:我是一名高级Vaadin开发人员(我使用过6,7,现在我的所有项目都迁移到了Vaadin 8).
我开始研究Vaadin 10/Flow,但我发现自己处于一些热水中.
我实际上正在努力的是"项目"本身.我越深入,我越觉得这个框架正在转变为基于css/html的框架,这需要比java更多的css/html知识.我的意思是,如果你不完全知道css和html如何工作,你就不能再轻松地使用这个框架了.
问题是,我不知道我是否完全忽略了这一点,我正在失去一杯水,或者如果那真的是一个完全不同的框架.这是我要求你提出意见的地方,以及一些对抗.
我发现了一些非常好的东西,比如@Router和所有新的导航范例和新的Mobile First组件,但是在示例中我真的找不到一种快速的方法来构建一个漂亮的外观和感觉布局而无需使用css和html.
使用Vaadin 8轻松完成任务对我来说很难理解......就像模板一样:使用Vaadin 10 Designer真的很奇怪.
我希望我只是错过了这一点,你们中的一些人可以帮助我清除我的想法.
的AbsoluteLayout在Vaadin 8(框架)使布局内的窗口小部件面向像素的位置放置.虽然不是我选择的第一个布局,但AbsoluteLayout它适合从其他使用面向像素位置的布局的UI构建平台移植代码.
手册中的示例代码:
// A 400x250 pixels size layout
AbsoluteLayout layout = new AbsoluteLayout();
layout.setWidth("400px");
layout.setHeight("250px");
// A component with coordinates for its top-left corner
TextField text = new TextField("Somewhere someplace");
layout.addComponent(text, "left: 50px; top: 50px;");
Run Code Online (Sandbox Code Playgroud)
我可以看到传递的参数只是CSS编码.但我不是HTML/CSS向导,这就是我首先使用基于Java的Vaadin的原因.
从Vaadin 8(框架)迁移到Vaadin 10(Flow)的迁移指南在这个组件列表中表示,8从8中未包含,他们也不打算在将来添加它.但该页面确实提供了有关替换的说明:AbsoluteLayoutAbsoluteLayout
使用例如Div可以很容易地在V10中实现相同的效果
我正在尝试将vaadin 10与spring security(使用vaadin提供的spring项目库)集成,我对它们如何完全交互感到困惑.如果我转到受保护的URL(在此示例中,"/ about")直接在浏览器中键入,则会显示登录页面.如果我通过单击UI中的链接转到相同的URL,即使我未经过身份验证,该页面也会显示.所以我猜Vaadin没有通过Spring Security的过滤器链,但是我如何在UI中保护我的资源,以及如何在vaadin和spring之间共享经过身份验证的用户呢?我应该两次实施安全措施吗?可用的文档似乎没有涵盖这一点,互联网上的每个链接都有Vaadin 7-8的例子,我从未使用过,并且似乎与10+不同.
有没有人知道关于这个的任何资源,或者你能告诉我所有这些如何一起工作所以我可以知道我在做什么?
这是我的安全配置:
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {
private static final String[] ALLOWED_GET_URLS = {
"/",
//"/about",
"/login/**",
"/frontend/**",
"/VAADIN/**",
"/favicon.ico"
};
private static final String[] ALLOWED_POST_URLS = {
"/"
};
//@formatter:off
@Override
protected void configure(HttpSecurity http) throws Exception {
http
.csrf()
.disable()
.authorizeRequests()
.mvcMatchers(HttpMethod.GET, ALLOWED_GET_URLS)
.permitAll()
.mvcMatchers(HttpMethod.POST, ALLOWED_POST_URLS)
.permitAll()
.anyRequest()
.fullyAuthenticated()
.and()
.formLogin()
.loginPage("/login")
.permitAll()
.and()
.logout()
.logoutSuccessUrl("/")
.permitAll();
}
//@formatter:on
}
Run Code Online (Sandbox Code Playgroud) 我正在尝试将现有的 Vaadin 8 应用程序迁移到 Vaadin 12,并且需要知道如何在 Vaadin 12 中重新创建 Vaadin 8 的 GridLayout 的功能。
根据Vaadin Docs的说法,可以在 Vaadin 12 中通过以下方式替换 GridLayout: “将 Div 与大多数浏览器支持的新 CSS 网格功能一起使用”
不幸的是,目前尚不完全清楚如何做到这一点。
让我们假设我有一个 Vaadin 复合“HelloGrid”:
@StyleSheet("styles/hello-grid.css")
public class HelloGrid extends Composite<Div> {
public HelloGrid(){
// EDIT: This line is my solution to the question
getElement().getClassList().add("hello-grid");
Label labelOne = new Label();
labelOne.addClassName("label-one");
Label labelTwo = new Label();
labelTwo.addClassName("label-two");
add(labelOne);
add(labelTwo);
}
}
Run Code Online (Sandbox Code Playgroud)
还有一个 css 文件“hello-grid.css”:
.hello-grid {
display: grid !important;
grid-template-rows: …Run Code Online (Sandbox Code Playgroud) I am trying to run jmeter to load test vaadin13 application following the article here How to perform an Load Test/Performance Test with Vaadin 10 (is it possible with Jmeter?) which is absolutely very helpful. However, i encounter being return for(;;);[{"meta":{"sessionExpired":true}}] for every request which i am clueless.
I check that Vaadin-Security-Key is extracted correctly. Check the request data csrfToken, node is replaced with the value correctly. I am clueless on what i am missing here. Would like to seek …
在Vaadin Flow中的特定TextField元素上,是否有任何特定的方法可以为Enter键添加快捷方式侦听器。该文档对此保持沉默。
我目前是一名崭露头角的 Java 开发人员,想要进入 Vaadin 开发,目前正在尝试为我的应用程序实现用户会话登录。我已阅读有关使用 VaadinServlet 执行此操作的内容: https: //vaadin.com/docs/v10/flow/advanced/tutorial-application-lifecycle.html。
在不断地挖掘 API 文档和示例代码之后,我仍然无法理解如何为登录到我的平台的特定用户实现用户会话。据我了解,我可以使用下面实现的内容来初始化我的用户会话。
然而,我的应用程序目标略有不同:
[使用案例]
1.用户使用其特定凭据登录。
2.重定向到安全页面(这将创建一个存储用户用户名的用户会话并检索令牌?)
3.2-3 分钟不活动后,用户将被迫退出安全页面并且会话关闭?
@WebServlet(urlPatterns = "/*", name = "VaadinFlowServlet", asyncSupported = true)
@VaadinServletConfiguration(heartbeatInterval = 5, productionMode = false)
public class LoginServlet extends VaadinServlet implements SessionInitListener, SessionDestroyListener {
private static final Logger LOGGER = LoggerFactory.getLogger(LoginServlet.class);
// <Method> ::servletInitialized():: -> handles most of the servlet customization. (write my servlet customization under this function.
// ::getService():: -> returns a VaadinServletService type?
// ::addSessionInitListener(this):: -> An event listener …Run Code Online (Sandbox Code Playgroud) vaadin10 ×10
vaadin-flow ×7
vaadin ×6
css ×1
css-position ×1
java ×1
jmeter ×1
layout ×1
load-testing ×1
spring ×1
vaadin8 ×1