【发布时间】:2011-08-24 20:04:49
【问题描述】:
我是 GWT 的新手,希望您能帮助我做出正确的决定。我的工作是用 GWT 制作一个 GUI,它很容易使用,因为我知道很多类似于 Java / Swing 的概念...... 问题是我想和我的队友有一个同质的网站,但我没有找到任何类似于模板或 facelets 的概念...... 我怎样才能做到这一点?? 提前感谢您的帮助
【问题讨论】:
我是 GWT 的新手,希望您能帮助我做出正确的决定。我的工作是用 GWT 制作一个 GUI,它很容易使用,因为我知道很多类似于 Java / Swing 的概念...... 问题是我想和我的队友有一个同质的网站,但我没有找到任何类似于模板或 facelets 的概念...... 我怎样才能做到这一点?? 提前感谢您的帮助
【问题讨论】:
Web 应用程序意义上的模板意味着其他人(模板引擎)正在为您构建视图层次结构,您只需插入一些组件和逻辑。
使用 GWT,您可以:
使用模板引擎(或构建您自己的引擎),它需要一些 UI 描述(通常是 XML),然后为您构建小部件树。缺点是设计师应该学习这种 UI 描述语言(不太可能),或者每次设计更改时,您都需要将 HTML 翻译成这种 UI 语言。
使用 HTML 作为模板,用 id 和/或 class 标记相关部分,然后只需将 GWT 组件/逻辑插入 GWT 代码标记的位置。这对设计者更加友好,但是 GWT 没有构建完整的小部件层次结构。这意味着您需要手动将小部件附加/分离到 DOM(谷歌搜索 Composite.onAttach() 和 onDetach())。
使用 HTML 作为模板,用id 和/或class 标记相关部分,但不要创建和插入 GWT 组件,而是使用设计器提供的纯 HTML 元素。这意味着设计师应该提供所有细节:按钮、表格,一切。然后使用gwtQuery 进行所有的 HTML 交互:查找元素、复制/操作它们并添加事件处理程序。
由于 GTW 是单页应用程序,所有相关的 HTML 必须放入单个文件(gwt 主机文件)中。我将它们放在尖端级别的 div 中,但在它们上设置了display:none,这样就不会出现。当我需要它们时,我只需将它们复制到需要的地方并显示它们。
【讨论】: