0

我过去广泛使用过 JSP 标签库、freemarker、tiles、JSF-Facelets。与他们使用标记库类似,我是否可以在 GWT UiBinder 中执行以下操作:

1) 组合:在 UiBinder 中创建一个标签库(没有 java 代码),并将标签包含到另一个 uiBinder 文件中 2) 继承:创建一个基本布局 UiBinder 文件(主布局)并覆盖子 UiBinder 文件中的特定内容区域?3) 将客户端变量传递到 UiBinder ($(map.property))

一般来说,我不确定 UiBinder 与其他模板库的比较。

4

2 回答 2

2

要使用 UiBinder 将一个页面的内容插入另一个页面,请在同一个包中创建一个类mypackage.Header和一个文件。然后你的 UiBinder holder-file 应该是这样的:Header.ui.xmlmypackage

<ui:UiBinder 
    xmlns:ui='urn:ui:com.google.gwt.uibinder'
    xmlns:g='urn:import:com.google.gwt.user.client.ui'
    xmlns:my='urn:import:mypackage'>

  <g:HTMLPanel>
    <my:Header />
    <!-- other content  -->
  </g:HTMLPanel>
</ui:UiBinder>

首先,UiBinder 是一个非常方便的工具,可以将 UI 与其行为分开。此外,它有助于提高生产力(这是真的!)、可维护性,并具有其他功能。GWT 中的 UiBinder 与 JSF 方法非常不同。此工具不是渲染器。与 JSF 相比,它不包含任何循环或条件。它的标记中没有if语句,只有非常有限的表达语言。所有逻辑都在Java类中。没错。在类中有循环和条件而不是在视图中是合乎逻辑的。

于 2012-05-10T09:21:04.413 回答
0

UiBinder 不是模板工具。这个想法是 XML 比 Java 更容易阅读和维护。

UiRenderer (GWT 2.5) 和 SafeHtmlTemplates 是,但它们非常基础。他们只回答你的第三点。

GWT 没有回答您的前两点。

于 2012-05-09T22:11:42.980 回答