configRoute(나를 라우팅합니다)


이 메서드는 JFinal 액세스 라우팅을 구성하는 데 사용됩니다. 다음 코드는 HelloController 컨트롤러에 대한 "/hello" 매핑을 구성합니다. http://localhost/hello는 HelloController.index() 메서드에 액세스합니다. http://localhost/hello/methodName은 HelloController.methodName() 메서드에 액세스합니다.

public void configRoute(Routes me)
{ 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 라우팅 규칙은 다음과 같습니다.


QQ截图20170206095411.png

표에서 볼 수 있듯이 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 주석도 제공하는데, 이는 원래 규칙을 위반할 수 있습니다. 다음은 코드 예제입니다.

public class UserController는 Controller {
@ActionKey("/login ")
공개 무효 로그인()
{ render("login.html");
}


UserController의 ControllerKey 값이 "/user"라고 가정합니다. @ActionKey("/login") 주석을 사용한 후 actionKey가 원래 "/user/login"에서 "/login"으로 변경됩니다. 이 주석을 사용하면 "/user/123-456"과 같은 ActionKey에 빼기 기호나 숫자 등의 문자를 사용할 수도 있습니다.


JFinal의 기본 라우팅 규칙이 요구 사항을 충족할 수 없는 경우 개발자는 Handler를 사용하여 필요에 따라 보다 개인화된 라우팅을 사용자 정의할 수도 있습니다. 일반적인 아이디어는 Handler의 첫 번째 매개변수 String 대상 값을 변경하는 것입니다.

JFinal 라우팅은 분할 및 구성할 수도 있으며 이는 대규모 팀 개발에 특히 유용합니다. 다음은 코드 예제입니다.

public 클래스 FrontRoutes는 Routes를 확장합니다.
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 FrontRoutes()); // 프런트 엔드 라우팅

me.add(new AdminRoutes()); 라우팅 종료



}



public void configConstant(Constantsme) {}



public void configPlugin(Pluginsme) {}



public void configInterceptor(Interceptorsme) {}



public void configHandler (Handlersme) {}



}






위의 세 가지 코드에 표시된 것처럼 FrontRoutes 클래스는 시스템 프런트엔드 라우팅을 구성하고, AdminRoutes는 시스템 백엔드 라우팅을 구성하며, MyJFinalConfig.configRoute(...) 메소드는 두 개의 분할 경로를 병합합니다. 이 분할 구성을 사용하면 MyJFinalConfig 파일이 더욱 간결해질 뿐만 아니라 대규모 팀 개발이 용이해지고 여러 사람이 동시에 MyJFinalConfig를 수정할 때 버전 충돌이 방지됩니다.