new UiFormSpecifier().ui user, {
section "User", {
field user.username_
field user.firstName_
field user.lastName_
ajaxField user.manager_,
this.&selectUser
}
formAction this.&saveUser
}使用 DSL 构建您自己的内网(无需 HTML 或 JavaScript)
Taack-UI 是一个 Grails 插件,它通过静态类型的 Groovy DSL(领域特定语言)来描述用户界面,从而对 Grails 进行扩展。
从代码到界面
只需几行 Groovy 代码即可定义一个表单。字段是由您的类生成的符号(如 username_),因此编译器会对其进行检查;约束条件会自动转化为本地化的错误消息。
def form() {
DslSampleUser u = new DslSampleUser()
taackUiService.show(new UiBlockSpecifier().ui {
modal {
form createForm(u, {
row {
col {
section 'User', {
field u.username_
field u.firstName_
field u.lastName_
}
}
col {
section 'Details', {
field u.age_
field u.birthday_
field u.city_
field u.status_
field u.enabled_
}
}
}
formAction this.&saveForm as MC
})
}
})
}
功能特性
为什么选择 Taack?
| Taack | Grails 与 GSP | JavaScript 前端 | |
|---|---|---|---|
UI 编写方式 |
静态类型的 Groovy DSL |
GSP 模板、HTML、CSS |
JavaScript 或 TypeScript,外加 REST API |
字段名称检查 |
编译期 |
运行期 |
取决于 API 契约 |
字段与操作级权限 |
内置支持,自动隐藏无权限链接 |
手动编写 |
前后端均需手动编写 |
PDF、CSV、邮件 |
与界面使用相同的 DSL |
需编写独立代码 |
需编写独立代码 |
需掌握的语言 |
Groovy |
Groovy、HTML、CSS、JavaScript |
Groovy 或 Java、JavaScript、HTML、CSS |
基于 Taack 构建的应用
SSH 与 SFTP
Figure 1. SSH 服务器会话
Figure 2. SFTP 文件浏览器







