开发者社区 问答 正文

jfinal 配置路由的问题:配置报错 

 /**

  * 配置路由

  */

 public void configRoute(Routes me) {

  me.add("/", CommonController.class);

  me.add("/blog", BlogController.class);

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

展开
收起
kun坤 2020-06-02 16:25:16 498 分享 版权
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-02 16:25:23
    赞同 展开评论