Jfinal render html资源路径问题

305575075 发布于 2016/09/29 15:47
阅读 2K+
收藏 0

@JFinal 你好,想跟你请教个问题:

我用JFinal render一个html页面时,页面无法正常显示。看了下可能是因为路径问题引起的,我换成了绝对路径引用图片就可以正常显示。

请问我想用相对路径来引用资源文件时,该怎么做?(这很重要,因为大多数都是用的相对路径


html代码如下,我用相对路径引用了一张图片,结果无法正常显示。

<!DOCTYPE html>
<html>
<head>
    <meta charset="UTF-8">
    <title>Builder</title>
</head>
<body>
    <img src="img/bg01.jpg" alt="上海鲜花港 -郁金香" />
</body>
</html>


public class GameController extends BaseRestfulController {
    @Override
    public void index() {
        // TODO Auto-generated method stub
        String name = getPara();
        String path = "/game/" + name + "/index.html";
        render(path);
    }
}


http://localhost/game/test 访问时图片不能正常显示。

加载中
0
JFinal
JFinal

将路径中需要变化的值使用一个变量来承载,在拦截器中动给这个变量来赋值,在页面中这样用:

<img src="${cxtPath}/xxx/yyy/zzz.jpg" />

拦截器中大致这样:

void intercept(Invocation inv) {
  inv.invoke();
  inv.getController("cxtPath", 根据某种规则构造该值);
}


0
305575075
305575075

引用来自“JFinal”的评论

将路径中需要变化的值使用一个变量来承载,在拦截器中动给这个变量来赋值,在页面中这样用:

<img src="${cxtPath}/xxx/yyy/zzz.jpg" />

拦截器中大致这样:

void intercept(Invocation inv) {
  inv.invoke();
  inv.getController("cxtPath", 根据某种规则构造该值);
}


inv.getController("cxtPath", 根据某种规则构造该值);

Invocation只找到一个不带任何参数的方法:inv.getController();

JFinal
JFinal
笔误,应该是 inv.getController().setAttr("cxtPath", ....);
0
合金来了
 public void intercept(Invocation inv){
 
 
Controller controller = inv.getController();
 
log.info("Before method invoking");
log.info("URL:"+controller.getRequest().getLocalAddr());
 
inv.invoke();
 
controller.setAttr("ContextPath", controller.getRequest().getContextPath() );
 
log.info("After method invoking");
log.info("ContextPath:"+controller.getRequest().getRequestURI());

}




谢谢

0
Crus_Lv
Crus_Lv

有没有不改页面的方法@JFinal

返回顶部
顶部