开发者社区 问答 正文

jfinal 配置路由的问题 :报错

 /**
  * 配置路由
  */
 public void configRoute(Routes me) {
  me.add("/", CommonController.class);
  me.add("/blog", BlogController.class);
 }

 

这样配置的路由都是绝对路径,如果我的web应用有上下文,这样出来的首页连接就不对了。

路由能配置成相对于web的上下文的相对路径么?

 

展开
收起
kun坤 2020-06-14 17:49:15 664 分享 版权
1 条回答
写回答
取消 提交回答
  •     默认就是支持 web 上下文路径的,无需干预,例如 contextPath为 "app" ,则首页访问路径为  http://localhost/app######

    老大没明白我的意思,我现在把demo的例子改成oracle的了,首页也出来了。但首页上面的连接不对。比如博客管理的连接是/blog,但我的web应用是有个上下文xxx,那么博客管理的连接就应该是/xxx/blog,这个问题不知道怎么解决?我用的是tomcat 7

    ######

    /**
      * 配置处理器
      */
     public void configHandler(Handlers me) {
      me.add(new ContextPathHandler("dataplatform"));
     }

    在 config中添加了handler还是不行啊。

     

    ######肯定可以的,有几个朋友用上了######

    引用来自“jincy”的答案

    老大没明白我的意思,我现在把demo的例子改成oracle的了,首页也出来了。但首页上面的连接不对。比如博客管理的连接是/blog,但我的web应用是有个上下文xxx,那么博客管理的连接就应该是/xxx/blog,这个问题不知道怎么解决?我用的是tomcat 7

    用了 new ContextPathHandler("ctx")以后,还需要在页面使用一下,如  src="${ctx}/blog/list"
    ######

    1.按照你说的方法,在每个url的链接前加"${ctx}/"是好用的。

    但设置

    <base href="${ctx}"/>的方法不好用

    2.另外你在另外一片帖子里面说到的类:com.jfinal.ext.interceptor.ContextPathInterceptor

    不存在啊。

    ######

    引用来自“jincy”的答案

    1.按照你说的方法,在每个url的链接前加"${ctx}/"是好用的。

    但设置

    <base href="${ctx}"/>的方法不好用

    2.另外你在另外一片帖子里面说到的类:com.jfinal.ext.interceptor.ContextPathInterceptor

    不存在啊。

    1:<base href="${ctx}" /> 纯属 html 用法了,查看相关的文档一定可以搞定

    2:笔误了,应该是:com.jfinal.ext.handler.ContextPathHandler

    ######

    刚才试过了,如果采用<base href="${ctx}"/> 的方式,你的ctx变量需要返回的值是这样的才行:http://localhost:8080/xxx/ ,而不是仅仅返回一个上下文xxx .而且下面的链接前面不能带反斜杠。

    <li><a href=""><b>首页3</b></a></li>
     <li><a href="blog"><b>Blog管理</b></a></li>

    但如何才能返回一个http://localhost:8080/xxx/ 这样的字符串呢?

    关于<base>的用法,希望楼主抽空试试,我是没有成功,但这的确很有用。

     

    2020-06-14 17:49:57
    赞同 展开评论