JFinal 404 action not found
整理一下关于JFinal路径的问题:
configRoute(..)此方法用来配置访问路由,路由配置可以用手工添加路由与路由扫描,注意:使用了路由扫描就不要再使用手工添加路由,两者选其一。
1.路由扫描:
public void configRoute(Routes me) { // 如果要将控制器超类中的 public 方法映射为 action 配置成 true,一般不用配置 me.setMappingSuperClass(false); // 配置 baseViewPath,可以让 render(...) 参数省去 baseViewPath 这部分前缀 me.setBaseViewPath("/view"); // 配置作用于该 Routes 对象内配置的所有 Controller 的拦截器 me.addInterceptor(new FrontInterceptor()); // 路由扫描,jfinal 4.9.03 新增功能。参数 "com.xxx." 表示扫描被限定的包名, // 扫描仅会在该包以及该包的子包下进行 me.scan("com.xxx."); }
扫描功能需要在 Controller 声明之处使用 @Path 注解
@Path("/project") public class ProjectController extends Controller { ... } // 以下用法为 controller 配置了 viewPath @Path(value="/", viewPath="/index") public class IndexController extends Controller { ... }
2.手工配置路由
public Routes add(String controllerPath, Class<? extends Controller> controllerClass, String viewPath) public Routes add(String controllerPath, Class<? extends Controller> controllerClass)
最后在使用
UndertowServer.start(DemoConfig.class, 80, true)启动JFinal时,用浏览器访问可以不加端口号。