Route Patterns
路由模式用于定义URL如何映射到特定视图,包括动态和可选片段、正则表达式和通配符。路由模式使框架能够匹配URL、提取参数以及动态生成URL。它们在根据浏览器的位置结构化应用程序的导航和组件渲染方面起着关键作用。
路由模式语法
webforJ中的路由模式非常灵活,支持以下特性:
- 命名参数: 用
:paramName表示,除非标记为可选,否则是必需的。 - 可选参数: 用
:paramName?表示,可以在URL中省略。 - 通配符片段: 用
*表示,用于捕获URL的所有剩余片段。 - 正则表达式约束: 约束仅可添加到命名参数上(例如,
:id<[0-9]+>)。
路由模式定义示例
@Route("customer/:id<[0-9]+>/named/:name/*")
public class CustomerView extends Composite<Div> implements DidEnterObserver {
@Override
public void onDidEnter(DidEnterEvent event, ParametersBag parameters) {
int id = parameters.getInt("id").orElse(0);
String name = parameters.getAlpha("name").orElse("未知");
String extra = parameters.getAlpha("*").orElse("");
String result =
"客户 ID: " + id + "-" +
"名称: " + name + "-" +
"*: " + extra;
console().log(result);
}
}
在此示例中:
:id<[0-9]+>捕获一个数字客户ID。:name捕获一个名称。*捕获在named/:name之后的任何附加路径片段。
命名参数
命名参数通过在模式中的参数名称前加冒号 : 来定义。除非标记为可选,否则它们是必需的。命名参数还可以具有正则表达式 约束 来验证值。