我过去曾广泛使用JSP标记库,freemarker,tiles,JSF-Facelets。与使用taglibs类似,无论如何我都可以在GWT UiBinder中执行以下操作:
1)组合:在UiBinder中创建一个标签库(没有java代码)并将标签包含到另一个uiBinder文件中 2)继承:创建一个基本布局UiBinder文件(master layoyut)并覆盖子UiBinder文件中的特定内容区域? 3)将客户端变量传递给UiBinder($(map.property))
一般来说,我不确定UiBinder如何与其他模板库进行比较。
答案 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没有回答你的前两点。