Scaling with Routing and Composites
此步骤专注于实现路由,以增强应用结构的可扩展性和组织性。为此,将更新应用以处理多个视图,允许在不同的功能之间导航,例如编辑和创建客户条目。它将概述为这些功能创建视图的过程,使用像 Composite 这样的组件构建模块化和可重用的布局。
在之前的步骤中创建的应用将具有支持多个视图的路由设置,使用户能够更有效地管理客户数据,同时保持干净且可扩展的代码库。要运行应用:
- 转到
3-scaling-with-routing-and-composites目录 - 运行
mvn jetty:run命令
路由
路由是允许您的应用管理不同视图或页面之间导航 的机制。路由使您能够将应用拆分为更小、更专注的组件,而不是将所有逻辑和行为放在单一位置。
从本质上讲,路由将特定的URL连接到处理这些URL的视图或组件。当用户与您的应用互动时,例如单击按钮或直接在其浏览器中输入URL,路由器将URL解析为适当的视图,初始化它并在屏幕上显示。这种方法使管理导航和维护应用程序状态变得简单。
此步骤专注于更改 App 类、为视图创建文件并配置路由,以实现不同部分之间的平滑导航。
而不是将所有逻辑放入 App 的 run() 方法中,像 DemoView 和 FormView 这样的视图被实现为独立的类。这种方法更接近于标准Java实践。
- DemoView:处理显示表格并导航到
FormView。 - FormView:管理添加和编辑客户数据。
更改 App 类
要在您的应用中启用路由,请使用 @Routify 注解更新 App 类。这告诉 webforJ 激活路由并扫描指定的包以查找启用路由的视图。
@Routify(packages = "com.webforj.demos.views", debug = true)
public class DemoApplication extends App {
}
packages:指定扫描哪些包以查找定义路由的视图。debug:启用调试模式,以便于开发期间的故障排除。
创建视图文件并配置路由
一旦启用路由,将为应用包含的每个视图创建单独的Java文件,在这种情况下,DemoView.java 和 FormView.java。使用 @Route 注解为这些视图分配唯一的路由。这确保每个视图都可以通过特定的URL访问。
当与类关联的 @Route 注解的某个后缀没有值时,webforJ 会自动将该类的名称(不带后缀)分配为路由。例如,DemoView 将默认映射到 /demo 的路由。因为在这种情况下,DemoView 应该是默认路由,所以您将为其分配一个路由。
/ 路由作为应用的默认入口点。将此路由分配给视图确保这是用户访问应用时看到的第一个页面。在大多数情况下,仪表板或摘要视图将分配给 /。
@Route("/")
@FrameTitle("Demo")
public class DemoView extends Composite<Div> {
// DemoView 逻辑
}
有关不同路由类型的更多信息,请参见这里。
对于 FormView,路由 customer/:id? 使用可选参数 id 来确定 FormView 的模式。
- 添加模式:当未提供
id时,FormView将初始化一个空表单以添加新客户数据。 - 编辑模式:当提供
id时,FormView使用Service获取相应客户的数据并预填充表单,允许编辑现有条目。
@Route("customer/:id?")
@FrameTitle("Customer Form")
public class FormView extends Composite<Div> implements DidEnterObserver {
// FormView 逻辑
}
有关实现这些路由模式的不同方法的更多信息,请参见这里。
使用 Composite 组件显示页面
webforJ 中的复合组件,例如 Composite<Div>,允许您将UI逻辑和结构封装在可重用的容器中。通过扩展 Composite