关于#{ctxPath}没有输出结果

参考了http://www.jfinal.com/feedback/925

配置了

configHandler(Handlers me) {
   me.add(ContextPathHandler());

}

在jifnal_demo_for_maven项目中的index.html测试

#@layout()
#define main()
JFinal Demo 项目首页

   欢迎来到 JFinal极速开发世界!
   
   
   
   本Demo采用 JFinal Template 作为视图文件。
   点击此处开始试用Demo。

#(ctxPath)---------------------------------------------没有输出结果

jfinal_demo_maven.png

评论区

JFinal

2018-07-15 09:18

在使用 ContextPathHandler 的时候,默认名是:CONTEXT_PATH

所以得这样用:#(CONTEXT_PATH)

如果希望取别的名字,人 ContextPathHandler 传入一个构造参数即可:
me.add(new ContextPathHandler("ctxPath"));

如果使用的是 jfinal 的 enjoy 模板引擎,有更好的配置方法来取代,在 configEngine(Engine me) 中配置:
me.addSharedObject("ctxPath", JFinal.me().getContextPath());

lwcompany

2018-07-15 09:27

public void configEngine(Engine me) {
me.addSharedFunction("/common/_layout.html");
me.addSharedFunction("/common/_paginate.html");
me.setDevMode(true);
me.addSharedObject("ctxPath", JFinal.me().getContextPath());
}
/**
* 配置处理器
*/
public void configHandler(Handlers me) {
me.add(new ContextPathHandler("ctxPath"));

}
前台
#@layout()
#define main()

JFinal Demo 项目首页



欢迎来到 JFinal极速开发世界!








本Demo采用 JFinal Template 作为视图文件。
点击此处开始试用Demo。

#(CONTEXT_PATH)
#(ctxPath)
还是没有结果

JFinal

2018-07-15 09:45

@lwcompany 大概率是自动编译没有打开,改过的代码未生效

JFinal

2018-07-15 09:47

@lwcompany 如果是 “非maven” ,注意配置一下 Default output folder,这里有配置的方法:
http://www.jfinal.com/doc

maven 项目不需要配置 default output folder

lwcompany

2018-07-15 11:19

lwcompany 07-15 11:18
把target删除后重新编译,index.html中#(CONTEXT_PATH)
#(ctxPath)

----------------都没有显示

lwcompany

2018-07-15 11:21

控制台E:\installsoft\java\jre8\jdk8\bin\java -javaagent:E:\installsoft\ideaIU-2017.2.win\lib\idea_rt.jar=53326:E:\installsoft\ideaIU-2017.2.win\bin -Dfile.encoding=UTF-8 -classpath E:\installsoft\java\jre8\jdk8\jre\lib\charsets.jar;E:\installsoft\java\jre8\jdk8\jre\lib\deploy.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\access-bridge-64.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\cldrdata.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\dnsns.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\jaccess.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\jfxrt.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\localedata.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\nashorn.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\sunec.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\sunjce_provider.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\sunmscapi.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\sunpkcs11.jar;E:\installsoft\java\jre8\jdk8\jre\lib\ext\zipfs.jar;E:\installsoft\java\jre8\jdk8\jre\lib\javaws.jar;E:\installsoft\java\jre8\jdk8\jre\lib\jce.jar;E:\installsoft\java\jre8\jdk8\jre\lib\jfr.jar;E:\installsoft\java\jre8\jdk8\jre\lib\jfxswt.jar;E:\installsoft\java\jre8\jdk8\jre\lib\jsse.jar;E:\installsoft\java\jre8\jdk8\jre\lib\management-agent.jar;E:\installsoft\java\jre8\jdk8\jre\lib\plugin.jar;E:\installsoft\java\jre8\jdk8\jre\lib\resources.jar;E:\installsoft\java\jre8\jdk8\jre\lib\rt.jar;E:\installsoft\java\jre8\jdk8\jre\lib\javax.persistence.jar;E:\installsoft\ideaIU-2017.2.win\workspace\jfinal\jfinal-3.4_demo_for_maven\jfinal_demo_for_maven\target\classes;C:\Users\Administrator\.m2\repository\com\jfinal\jetty-server\8.1.8\jetty-server-8.1.8.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-xml\8.1.8.v20121106\jetty-xml-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-util\8.1.8.v20121106\jetty-util-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-servlet\8.1.8.v20121106\jetty-servlet-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-security\8.1.8.v20121106\jetty-security-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-server\8.1.8.v20121106\jetty-server-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\orbit\javax.servlet\3.0.0.v201112011016\javax.servlet-3.0.0.v201112011016.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-continuation\8.1.8.v20121106\jetty-continuation-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-http\8.1.8.v20121106\jetty-http-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\org\eclipse\jetty\jetty-io\8.1.8.v20121106\jetty-io-8.1.8.v20121106.jar;C:\Users\Administrator\.m2\repository\com\jfinal\jfinal\3.4\jfinal-3.4.jar;C:\Users\Administrator\.m2\repository\cglib\cglib-nodep\3.2.5\cglib-nodep-3.2.5.jar;C:\Users\Administrator\.m2\repository\log4j\log4j\1.2.16\log4j-1.2.16.jar;C:\Users\Administrator\.m2\repository\mysql\mysql-connector-java\5.1.44\mysql-connector-java-5.1.44.jar;C:\Users\Administrator\.m2\repository\com\alibaba\druid\1.0.29\druid-1.0.29.jar;E:\installsoft\java\jre8\jdk8\lib\jconsole.jar;E:\installsoft\java\jre8\jdk8\lib\tools.jar;C:\Users\Administrator\.m2\repository\com\jfinal\cos\2017.5\cos-2017.5.jar;C:\Users\Administrator\.m2\repository\com\ibeetl\beetl\2.7.15\beetl-2.7.15.jar;C:\Users\Administrator\.m2\repository\org\antlr\antlr4-runtime\4.2\antlr4-runtime-4.2.jar;C:\Users\Administrator\.m2\repository\org\abego\treelayout\org.abego.treelayout.core\1.0.1\org.abego.treelayout.core-1.0.1.jar;C:\Users\Administrator\.m2\repository\org\antlr\antlr4-annotations\4.2\antlr4-annotations-4.2.jar;C:\Users\Administrator\.m2\repository\com\jfinal\enjoy\3.4\enjoy-3.4.jar com.demo.common.DemoConfig
Starting JFinal 3.4
Starting web server on port: 8091
ctxPathTemplate Engine: JFinal Web
Starting Complete. Welcome To The JFinal World :)

JFinal-3.4 action report -------- 2018-07-15 11:09:09 --------------------------
Url : GET /
Controller : com.demo.index.IndexController.(IndexController.java:1)
Method : index
--------------------------------------------------------------------------------

JFinal-3.4 action report -------- 2018-07-15 11:09:11 --------------------------
Url : GET /
Controller : com.demo.index.IndexController.(IndexController.java:1)
Method : index
--------------------------------------------------------------------------------

JFinal

2018-07-15 11:33

@lwcompany 这个就再也猜不到原因了,单步调试一下,直接实地定位错误

JFinal

2018-07-15 11:35

此外, me.setDevMode(true);
me.addSharedObject("ctxPath", JFinal.me().getContextPath());

上面这两行代码放在 configEngine 的最前面,因为
me.setDevMode(...) 会立即对后续的代码产生影响
me.addSharedFunction("/common/_layout.html");

当然,这个对于本问题没有关联

lwcompany

2018-07-15 17:23

@JFinal 调试时jfinal.me().getcontextpath=""

JFinal

2018-07-15 17:26

@lwcompany 那么,你的 context path 设置的是多少? 值为 "" 也是可以的,这个值是随着你的启动参数去变化的

lwcompany

2018-07-15 20:47

在启动项加入了/index 调试观察窗口可以出现JFinal.me().getContextPaht()="/index" ,但前台页面依旧取不值

lwcompany

2018-07-15 20:48

http://localhost:8091/index/-------------#{ctxPath} 没有值显示

或是的话

2018-07-16 09:36

lwcompany

2018-07-16 09:43

开启beetl模板就出来了${ctxPath}

JFinal

2018-07-16 12:21

@lwcompany 我们一直都是这么用的,你按照我前面的解决办法还解决不了,太奇怪了

只能通过单步调试去看是什么问题,作为问题回答者,根据当前信息量无法再做进一步的回答

此外,检查一下你使用的模板引擎是什么类型,在 configConstant(Constants me) 中要配置:
me.setViewType(ViewType.JFINAL_TEMPLATE);

lwcompany

2018-07-16 12:46

JFinal.start("src/main/webapp", 8091, "/index");加个参数index

lwcompany

2018-08-01 15:57

me.add("/login", LoginController.class, "/views"); //访问地址,否则渲染不到页面 http://localhost:8093/login

热门反馈

扫码入社