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时,用浏览器访问可以不加端口号。
原文地址:https://www.cnblogs.com/ajinjinjin/p/15538696.html