代码之家  ›  专栏  ›  技术社区  ›  localshred

Java Web应用程序的桌面类UI实现?

  •  1
  • localshred  · 技术社区  · 15 年前

    在工作中,我们正在讨论如何为web应用程序升级视图层。我们目前正在运行一个旧的和“修改”版本的Freemarker经典,这是一个痛苦的工作。我们的一位开发人员建议使用类似于桌面风格环境的组件ui风格架构。

    本质上,这意味着您可以将自定义HTML组件构建为控制器将呈现到文档视图中的Java类。这将完全消除将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)。

    谢谢!

    6 回复  |  直到 14 年前
        1
  •  2
  •   Eugene Ryzhikov    14 年前

    有一个纯Java方式,所有的东西都是用Java构建的。看看这里 http://www.zkoss.org/

    更新:我找到了更好的一个。也是纯Java。 http://vaadin.com/home

        2
  •  0
  •   jdigital    15 年前

    怎么样 GWT ?

        3
  •  0
  •   Tom Neyland    15 年前

    Echo2 / Echo3 可能有用。

    回声是建筑的平台 基于web的应用程序 富客户机的功能。这个 应用程序是使用 面向组件和事件驱动 API,无需处理 浏览器的“基于页面”特性。 对于开发人员来说,echo的工作方式就像 用户界面工具包。

        4
  •  0
  •   JoshJordan    15 年前

    我用过 GWT-Ext 创建一个基于Java的Web应用程序的桌面感觉。它很受欢迎,感觉很像你根本不在一个网络浏览器。

        5
  •  0
  •   Philip Tinney    15 年前

    Click 很接近你所描述的。它确实使用了Velocity,但是如果您看一下AdvancedForms示例,模板是非常基本的。

    wingS 是另一个看起来很接近你想要的。应该是摇摆的样子。

        6
  •  0
  •   Community Ian Goodfellow    7 年前

    使用apache click和vaadin。 这里详细比较

    Vaadin vs Apache Click which one to choose for my webapp development

    ps:我使用apache click和freemarker。单击支持velocity/freemarker/jsp。速度引擎只是默认的。