Java Web 应用程序的类似桌面的 UI 实现?
Posted
技术标签:
【中文标题】Java Web 应用程序的类似桌面的 UI 实现?【英文标题】:Desktop-like UI implementations for Java web applications? 【发布时间】:2010-11-21 03:19:20 【问题描述】:在工作中,我们正在讨论为我们的 Web 应用程序升级我们的视图层。我们目前正在运行 FreeMarker Classic 的旧版本和“修改”版本,使用起来很痛苦。我们的一位开发人员建议使用类似于桌面样式环境的组件 UI 样式架构。
本质上,这意味着您可以将自定义 html 组件构建为 Java 类,控制器将呈现到 Document 视图中。这将完全消除将 HTML 写入视图层的需要。组件将为您生成视图层。
例如,以下呈现的 HTML:
<h1>I am a title</h1>
<p>I am a paragraph.</p>
将通过执行以下操作生成:
String titleString = "I am a title";
html.elements.Heading heading = new html.elements.Heading(Heading.H1, titleString);
String paraString = "I am a paragraph.";
html.elements.Paragraph paragraph = new html.elements.Paragraph(paraString);
PrintWriter somePrintWriter = new PrintWriter();
Document document = new Document();
document.addElement(heading);
document.addElement(paragraph);
document.compose(somePrintWriter);
上面的代码只是一个例子,不要批评名称或风格,我只是为了快速演示我们可能要完成的工作而编写它。我正在尝试确定这是否已经在 Java 中完成,如果是,是否有任何可以指向的链接。我一直在尽可能地研究它,但还没有找到任何完全去除模板层的实现(例如JSP或JSF)。
谢谢!
【问题讨论】:
您根本不需要模板层吗?我发了一个帖子,但当我看到你的最后一句话时很快就删除了。 对,我们正在尝试看看是否可以完全消除模板,因为控制器中的所有业务逻辑都可以处理视图中呈现的内容。 很多答案都集中在成熟的框架上。很高兴看到,但我们只对可以与现有系统集成的 GUI 工具包更感兴趣。不确定它是否在那里,但都一样,只是想清楚。 @localshred 查看 JAVA FX 【参考方案1】:有一种纯 Java 方式,其中一切都是使用 Java 构建的。在这里查看 http://www.zkoss.org/
更新:我找到了更好的。也是纯Java。 http://vaadin.com/home
【讨论】:
【参考方案2】:Click 与您所描述的非常接近。它确实使用了 Velocity,但如果您看一下 Advanced Forms 示例,就会发现该模板非常基础。
wingS 是另一个看起来接近你想要的东西。应该是 Swing 的样子。
【讨论】:
【参考方案3】:我使用 GWT-Ext 为基于 Java 的 Web 应用程序创建了一种桌面感觉。它非常受欢迎,感觉就像您根本不在网络浏览器中一样。
【讨论】:
我会检查一下,但我不确定我们是否正在寻找一个 SproutCore 类型的实现,该应用看起来像一个桌面应用。我们只需要组件 UI 样式技术。【参考方案4】:Echo2/Echo3 可能有用。
Echo 是一个构建平台 接近的基于网络的应用程序 富客户的能力。这 应用程序是使用开发的 面向组件和事件驱动 API,免去处理 浏览器的“基于页面”的性质。 对于开发者来说,Echo 的工作方式就像 一个用户界面工具包。
【讨论】:
这看起来最接近我们想要完成的目标。唯一的问题是它是一个完整的框架,我们没有能力实现它。我们正在严格地寻找视图架构。【参考方案5】:GWT怎么样?
【讨论】:
这似乎更适合我们正在寻找的 Ajax,除非我完全错过了一些东西。不过,这绝对是同一条路线。以上是关于Java Web 应用程序的类似桌面的 UI 实现?的主要内容,如果未能解决你的问题,请参考以下文章
Flutter for Web - 有没有办法实现类似桌面的文本框?