如何在GWT中构建类似UiBinder标签的JSP / JSF?

时间:2012-05-09 21:48:06

标签: gwt uibinder

我过去曾广泛使用JSP标记库,freemarker,tiles,JSF-Facelets。与使用taglibs类似,无论如何我都可以在GWT UiBinder中执行以下操作:

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

一般来说,我不确定UiBinder如何与其他模板库进行比较。

2 个答案:

答案 0 :(得分:2)

使用UiBinder在另一个页面中插入一个页面的内容,在同一个包mypackage.Header中创建一个类Header.ui.xml和一个文件mypackage。然后您的UiBinder holder文件应如下所示:

<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类中。这是正确的。在类中具有循环和条件比在视图中具有逻辑性。

答案 1 :(得分:0)

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

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

GWT没有回答你的前两点。