作者:iidt | 来源:互联网 | 2024-12-11 19:58
自定义 JFinal 配置类需实现的方法
在 JFinal 框架中,通过继承 JFinalConfig 类并实现其五个抽象方法,可以完成框架的基本配置。示例如下:
public class CustomConfig extends JFinalConfig {
public void configConstant(Constants me) {}
public void configRoute(Routes me) {}
public void configPlugin(Plugins me) {}
public void configInterceptor(Interceptors me) {}
public void configHandler(Handlers me) {}
}
配置常量
configConstant(Constants me) 方法用于设置应用的常量配置,如开发模式和默认视图类型。例如,下面的代码配置了 JFinal 在开发模式下运行,并设置了默认视图类型为 JSP:
public void configConstant(Constants me) {
me.setDevMode(true);
me.setViewType(ViewType.JSP);
}
在开发模式下,JFinal 会为每个请求生成详细的日志信息,包括请求的控制器、方法及参数等。此外,JFinal 支持多种视图技术,如 JSP、FreeMarker 和 Velocity。
配置路由
configRoute(Routes me) 方法用于定义 URL 到控制器方法的映射。例如,下面的代码将 URL 路径 “/hello” 映射到 HelloController 控制器:
public void configRoute(Routes me) {
me.add("/hello", HelloController.class);
}
这意味着,访问 http://localhost/hello 时将调用 HelloController.index() 方法,而访问 http://localhost/hello/methodName 时将调用 HelloController.methodName() 方法。
Routes 类提供了多个方法来增加路由规则,常见的方法包括:
public Routes add(String controllerKey, Class extends Controller> controllerClass, String viewPath)
public Routes add(String controllerKey, Class extends Controller> controllerClass)
其中,controllerKey 是访问控制器的路径标识,controllerClass 是对应的控制器类,而 viewPath 是视图文件的相对路径。如果未指定 viewPath,则默认为 controllerKey 的值。
在 JFinal 中,URL 的组成部分包括 controllerKey、method 和 urlPara,它们之间使用斜杠 “/” 分隔。例如,URL /user/login/123-456 中,/user 是 controllerKey,login 是方法名,123-456 是 URL 参数。
此外,@ActionKey 注解允许开发者自定义 Action 的 URL,例如:
public class UserController extends Controller {
@ActionKey("/login")
public void login() {
render("login.html");
}
}
这里,即使 UserController 的 controllerKey 是 “/user”,由于使用了 @ActionKey("/login") 注解,实际的访问 URL 仍为 “/login”。这种机制使得 URL 设计更加灵活。