configRoute(나를 라우팅합니다)
이 메서드는 JFinal 액세스 라우팅을 구성하는 데 사용됩니다. 다음 코드는 HelloController 컨트롤러에 대한 "/hello" 매핑을 구성합니다. http://localhost/hello는 HelloController.index() 메서드에 액세스합니다. http://localhost/hello/methodName은 HelloController.methodName() 메서드에 액세스합니다.
{ me.add("/hello",
HelloController.class);
Routes 클래스에는 주로 다음 두 가지 메서드가 있습니다.
public Routes add(String ControllerKey , 클래스<? 확장 컨트롤러>
controllerClass, String viewPath)
public Routes add(String ControllerKey, Class<? extends Controller>
controllerClass)
먼저 컨트롤러 키 매개변수는 컨트롤러에 액세스하는 데 필요한 문자열을 참조합니다. 이 문자열은 컨트롤러에만 해당됩니다. 두 번째 매개변수인 ControllerClass는 ControllerKey에 해당하는 Controller입니다. 세 번째 매개변수 viewPath는 컨트롤러가 반환한 뷰의 상대 경로를 나타냅니다(이 매개변수에 대한 구체적인 세부 정보는 컨트롤러의 관련 장에서 제공됩니다). viewPath가 지정되지 않은 경우 기본값은 ControllerKey입니다.
JFinal 라우팅 규칙은 다음과 같습니다.
표에서 볼 수 있듯이 JFinal은 정확한 Action에 액세스할 때 정확하게 찾기 위해 ControllerKey와 메서드를 사용해야 합니다(Action에 대해서는 섹션 3.2 참조). 정의). method가 생략된 경우 기본값은 index입니다. urlPara는 URL에 매개변수 값을 전달하는 것입니다. urlPara는 하나의 요청에 여러 값을 동시에 전달할 수 있습니다. JFinal은 기본적으로 여러 값을 구분하기 위해 빼기 기호 "-"를 사용합니다(구분 기호는 다음을 통해 설정할 수 있음). Constants.setUrlParaSeparator(String)), Controller에서는 getPara(intindex)를 통해 이러한 값을 별도로 검색할 수 있습니다. ControllerKey, Method 및 urlPara의 세 부분은 슬래시("/")로 구분되어야 합니다. ControllerKey 자체에는 본질적으로 struts2의 네임스페이스 기능을 구현하는 "/admin/article"과 같은 슬래시 "/"가 포함될 수도 있습니다.
JFinal은 위의 라우팅 규칙 외에도 ActionKey 주석도 제공하는데, 이는 원래 규칙을 위반할 수 있습니다. 다음은 코드 예제입니다.
@ActionKey("/login ")
공개 무효 로그인()
{ render("login.html");
}
UserController의 ControllerKey 값이 "/user"라고 가정합니다. @ActionKey("/login") 주석을 사용한 후 actionKey가 원래 "/user/login"에서 "/login"으로 변경됩니다. 이 주석을 사용하면 "/user/123-456"과 같은 ActionKey에 빼기 기호나 숫자 등의 문자를 사용할 수도 있습니다.
JFinal 라우팅은 분할 및 구성할 수도 있으며 이는 대규모 팀 개발에 특히 유용합니다. 다음은 코드 예제입니다.
add(" /", IndexController.class);
add("/blog", BlogController.class);
}
}
public 클래스 AdminRoutes는 경로를 확장합니다.{
public void config(){
add("/admin",AdminController.class);
add("/admin/user", UserController.class);
}
}
public class MyJFinalConf igextends JFinalConfig {
publicvoid configRoute(Routesme)
me.add(new AdminRoutes()); 라우팅 종료
}
public void configConstant(Constantsme) {}
public void configPlugin(Pluginsme) {}
public void configInterceptor(Interceptorsme) {}
public void configHandler (Handlersme) {}
}