2009-08-19 104 views
1

在工作中,我们正在讨论升级我们的Web应用程序的视图层。我们目前正在运行一个旧的和经过修改的FreeMarker Classic版本,这是一个很难处理的问题。我们的一位开发人员建议使用类似于桌面风格环境的Component UI风格架构。用于Java Web应用程序的类似桌面的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)。

谢谢!

+0

你不想要模板层吗?我发表了一篇文章,但是当我读到最后一句话时很快就删除了它。 – MattC 2009-08-19 22:35:01

+0

对,我们试图看看是否可以完全消除模板,因为控制器中的所有业务逻辑都可以处理视图中呈现的内容。 – localshred 2009-08-19 22:42:24

+0

许多答案都集中在完整的框架上。很高兴看到,但我们更关心的是我们可以与现有系统集成的GUI工具包。 不知道它是否在那里,但都一样,只是想清楚。 – localshred 2009-08-19 22:58:42

回答

0

GWT怎么样?

+0

这似乎更适合我们正在寻找的Ajax,除非我完全失去了一些东西。这绝对是沿着同样的路线。 – localshred 2009-08-19 22:51:44

0

Echo2/Echo3可能会有用。

回声是构建接近富客户端的 能力 基于Web的应用程序的平台。 应用程序是使用面向组件的事件驱动的 API开发的,无需处理浏览器的“基于页面”的本质。 对于开发者来说,Echo的工作原理与 一样是一个用户界面工具包。

+0

这看起来像是我们正在努力完成的最接近的事情。唯一的问题是它是一个完整的框架,我们无法实现。我们正在严格考虑视图架构。 – localshred 2009-08-19 22:56:15

0

我使用GWT-Ext为基于Java的Web应用程序创建桌面感觉。它非常受欢迎,感觉非常像您根本不在网络浏览器中。

+0

我会检查这一点,但我不确定我们正在寻找一个SproutCore类型的实现,其中应用程序看起来像一个桌面应用程序。我们只是想要组件UI风格的技巧。 – localshred 2009-08-19 22:53:37

0

Click与您所描述的内容非常接近。它确实使用了Velocity,但是如果你看一下高级形式的例子,模板是非常基本的。

wingS是另一个看起来接近你想要的东西。它应该是Swing。

相关问题