jfinal控制render 找不到WEB-INF下文件

发布于 2021-11-30 10:33:29 字数 406 浏览 832 评论 13

设置了 me.setBaseViewPath("/WEB-INF/view");

但是在具体控制类里的render 仍然不会找/WEB-INF/view目录下的文件,

然而写 /WEN-INF/view/log4j/log4j.jsp,无论 写不写 setBaseViewPath 都能找到.

如何配置才能 直接render("log4j/log4j.jsp")就能去WEB-INF下找到呢?





如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(13

千笙结 2021-11-30 14:58:42

如此安好 2021-11-30 14:58:40

直接写绝对路径很好使,/WEN-INF/view/log4j/log4j.jsp

平生欢 2021-11-30 14:58:40

直接写绝对路径确实好使,非常感谢

私藏温柔 2021-11-30 14:58:36

回复
搞不明白你说的滥用是什么滥用,可否举例说明?这个帖子里楼主描述的已经很清楚了,我即便贴也只是跟楼主代码中的英文单词不同而已,根本毫无意义。另外这跟回答了几百个问题又有什么关系呢?

拥有 2021-11-30 14:58:36

实际上可能会因为误用、环境而产生偏差。我还算一个友善的人吧,这几年帮忙解决JFinal相关的问题至少也有上百例,不想跟你争执。实在是问题没有突破口,你可以到源码里面打2个断点,看看到底是怎么走的!

北笙凉宸 2021-11-30 14:58:34

第二点应该有关以“/"打头时的规则应该有误,应该是只要是以 "/" 打头就会使用绝对路径,忽略 BaseViewPath 与 ViewPath

离去的眼神 2021-11-30 14:58:07

回复
根据代码来看 是没有忽略啊??? if (baseViewPath != null) // support baseViewPath viewPath = baseViewPath + viewPath;

别低头,皇冠会掉 2021-11-30 14:56:22

引用来自“JFinal”的评论

     你忽略了在配置路由时的 viewPath: me.add("/abc", AbcController.class, "/path"),第三个参数就是 viewPath,如果第三个参数没有配置那么默认与 controllerKey 相同,即为 "/abc"。

   基于上面的说明,当你通过 me.setBasePath("/WEB-INF/view") 设置了视图的基础路径,并且配置路径时省略了viewPath参数,那么 render("log4j/log4j.jsp") 最终的视图路径为:"WEB-INF/view/abc/log4j/log4j.jsp。

   最后一个关键点,当你在 render 时,如果视图以 "/" 打头,则会忽略 viewPath,例如 render("/log4j/log4j.jsp")最终的视图路径为: "WEB-INF/view/log4j/log4j.jsp,也即忽略掉 viewPath:"/abc"。

模板路径规则:

1:模板路径 = BaseViewPath + ViewPath + render时的参数

2:当 render 时参数以 "/" 打头则模板路径 = BaseViewPath + render时的参数

3:在配置路由时如果省略第三个参数,则 viewPath = controllerKey

本王不退位尔等都是臣 2021-11-30 14:53:43

@
JFinal  我也遇到了相同的问题 basepath设置为 WEB-INF/web后 render时,路径前面+/不会去WEB-INF下找, 去掉/反而去找了 但多了controller

韬韬不绝 2021-11-30 14:42:12

@JFinal 感谢JFinal 的回答.

因为看清所以看轻 2021-11-30 14:35:13

setBaseViewPath("/WEB-INF/view"); render("/log4j/log4j.jsp"); 但是没去 baseviewpath+render 目录去找,在 WEB-INF 外去找的

苍暮颜 2021-11-30 14:00:04

最后一个关键点...这段说错了,然后模板路径规则第2点又说对了。 总言之,就是以'/'开头的话,baseviewpath和viewpath都无效。直接从webroot下找!

孤独患者 2021-11-30 13:59:13

回复
@Zempty : 可能是当时手误,已更正,不过 osc 的缓存有问题,更正好的内容有时会再变回去,感谢反馈

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文