关于 me.add(new ContextPathHandler("path"));设置了页面为空

@Override

public void configHandler(Handlers me) {

   me.add(new ContextPathHandler("path"));//加入路径  

}

在页面使用  #(path), 但是没有值



评论区

jsm

2017-10-25 17:14

求解答啊

jsm

2017-10-25 17:18

3.0的

JFinal

2017-10-25 17:26

得先确定 view type 是不是 jfinal 的:
me.setViewType(ViewType.JFINAL_TEMPLATE)

控制器中使用 render(String) 或者 renderTemplate(String) 这两个方法才可以

jsm

2017-10-25 17:47

@JFinal 都设置了,检查了一遍,也设置了view type 页面还是不显示

JFinal

2017-10-25 17:58

@jsm 试一下在controller 中用一下 setAttr("myPath", "abc"),然后页面用 #(myPath),看有没有显示出来

jsm

2017-10-25 18:00

@JFinal 可以显示的

JFinal

2017-10-25 18:02

ContextPathHandler 中的操作与 setAttr 没有本质区别,都是调用 request.setAttrubite(...) 而已

再用一个更好的解决方案:
public void configEngine(Engine me) {
me.addSharedObject("path", JFinal.me().getContextPath());
}

jsm

2017-10-26 09:01

不行,还是不显示啊

怎懂落寞

2018-02-01 14:36

@JFinal 没有设置me.setViewType(ViewType.JFINAL_TEMPLATE)这个,默认的是这个吗?还有使用的是demo中的html,配置了 me.add(new ContextPathHandler("path"));,在引入js的时候$(path)没有用

JFinal

2018-02-01 15:19

@怎懂落寞 $(path) 改为 #(path)

怎懂落寞

2018-02-01 15:22

@JFinal 改成#可以使用,但是web工程的代码页面显示是个错误的

xiaomei

2018-09-21 15:09

@JFinal 有什么区别 $(path) 和 #(path)

JFinal

2018-09-21 17:19

@xiaomei enjoy 所有指令统一以字符 '#' 开头,不支持美元符

可以说是没有关系,不是有没有区别的问题

roney

2018-11-17 14:11

@JFinal @jsm碰到和楼主一模一样的问题,两种方式都无用。。。求解答

roney

2018-11-17 14:14

@JFinal 求波总解答,各种配置检查很多遍还是没效果

ifu25

2019-02-14 19:07

@JFinal 之前的oschina上的回答是用的美元符号$,https://www.oschina.net/question/260040_45773

ifu25

2019-02-14 19:10

我今天也遇到,写了:me.add(new ContextPathHandler("ctx")); 但模板中#(ctx)没有值。

JFinal

2019-02-15 17:33

@ifu25 context path 可以为空字符串 "",配置一下 tomcat 或者 undertow 的 conext path 为非空字符串自然会有值

JFinal

2019-02-15 17:34

@ifu25 oschina 上回答的是美元符号,那是在 freemarker 等等其它模板引擎之下,jfinal enjoy 模板引擎的输出指令不使用美元符号

JFinal

2019-02-15 17:34

@roney context path 可以为空字符串 "",配置一下 tomcat 或者 undertow 的 conext path 为非空字符串自然会有值