Jfinal---------实现真实URL路径隐藏

实现真实URL路径隐藏功能需要先了解Jfinal的路由配置,需要的可以先参考前面写的 Jfinal—JFinalConfig解析,了解一下Jfinal的路由配置规则.

1.配置前端路由
在MainConfig.java文件中配置前端路由

public void configRoute(Routes me) {
        me.add(new AdRoutes()); // 后端路由
        me.add(new JSPRoutes());// 前端路由
    }

2.JSPRoutes.java文件

public class JSPRoutes extends Routes {

    @Override
    public void config() {
        add("/luckyview",LuckyController.class,"/admin/jsp/lucky/");
    }

}

1)这里用的是Routes 类

public Routes add(String controllerKey, Classextends Controller> controllerClass, String viewPath)

方法,第一个参数 controllerKey 是指访问某个 Controller 所需要的一个字符串,该字符串唯一对 应一个 Controller,controllerKey 仅能定位到 Controller。第二个参数 controllerClass 是该 controllerKey 所对应到的 Controller。第三个参数 viewPath 是指该 Controller 返回的视图的相对路径。当 viewPath 未指定时默认值为 controllerKey。

2)Jfinal路由规则,更详细的参见JFinal教程手册
Jfinal---------实现真实URL路径隐藏_第1张图片
从表中可以看出,JFinal 访问一个确切的Action需要使用 controllerKey与 method 来精确定位,当method 省略时默认值为 index。urlPara 是为了能在 url 中携带参数 值,urlPara 可以在一次请求中同时携带多个值,JFinal 默认使用减号“-”来分隔多个值(可 通过constants. setUrlParaSeparator(String)设置分隔符),在 Controller 中可以通过 getPara(intindex)分别取出这些值。controllerKey、method、urlPara 这三部分必须使用正斜杠“/”分隔。 注意,controllerKey 自身也可以包含正斜杠“/”,如“/admin/article”,这样实质上实现了struts2 的 namespace 功能。

3.LuckyController.Java文件

public class LuckyController extends Controller{

    public void operator() {
        String para = getPara();
        String jsp = "operator/" + para + ".jsp";
        renderJsp(jsp);
    }
}

4.访问路径

原URL: http://127.0.0.1:8080/testdemo/admin/jsp/lucky/operator/index.jsp
实现后URL: http://127.0.0.1:8080/testdemo/luckyview/operator/index

你可能感兴趣的:(码码码)