如何提前验证JavaFXCSS?

如何提前验证JavaFXCSS?,java,css,validation,javafx,Java,Css,Validation,Javafx,我有一个应用程序,其中web管理界面允许编辑和自定义将在JavaFX客户端上使用的CSS(客户端是一个在公共触摸屏上运行的kiosk类型的应用程序) 在将CSS输入存储在DB中并发送到JavaFX客户机之前,我想对用户输入的CSS进行一定程度的验证 我的第一次尝试(承认非常幼稚)是创建一个JavaFX场景,并将从HTTP请求中获得的CSS字符串应用于该场景,并捕获由此产生的任何异常: try { Scene scene = new Scene(new Region()); sce

我有一个应用程序,其中web管理界面允许编辑和自定义将在JavaFX客户端上使用的CSS(客户端是一个在公共触摸屏上运行的kiosk类型的应用程序)

在将CSS输入存储在DB中并发送到JavaFX客户机之前,我想对用户输入的CSS进行一定程度的验证

我的第一次尝试(承认非常幼稚)是创建一个JavaFX
场景
,并将从HTTP请求中获得的CSS字符串应用于该场景,并捕获由此产生的任何异常:

try {
    Scene scene = new Scene(new Region());
    scene.getStylesheets().add(profile.getStylesheet());
}catch(Exception e){
    //send some validation message
}
但这种方法存在两个问题:

  • 我们不在JavaFX应用程序中,所以我得到了一个异常
    java.lang.IllegalStateException:不在FX应用程序线程上;currentThread=http-bio-8080-exec-2
  • 即使它能工作,但这段代码对CSS所做的就是将它添加到一个“java.util.List”中,所以我不确定如果我们将无效的CSS传递给它,它是否会引发异常

在web容器上下文中,是否有一种(最好是轻量级的)方法来验证要应用于JavaFX场景图的CSS片段?

e(fx)clipse有我们用于自动完成和验证JavaFXCSS文件的元信息。理论上,这一切都可以在无头eclipse环境中运行,但需要一些工作才能运行。代码在EPL下,可以在上找到,但是stackoverflow不是讨论如何获得它的论坛running@tomsontom有趣。我快速浏览了一下,但据我所知,解析和验证代码与UI类、其他Eclipse库有很多依赖关系,Osgi环境等等。我想提取所需的逻辑相当困难——所有解析的核心内容都不依赖于Osgi,而是依赖于Xtext和Antlr——正如我所说的,我们必须付出一些努力,使其在IDE之外运行,但这肯定是可行的。OK,我找到了一些相关的包,它们是由Xtext生成的。我很想深入探讨这个问题,但我担心它超出了这个项目的范围(我必须熟悉Xtext和antlr以及基本概念)。无论如何谢谢你!