JFinal view路径的疑问

spring3214 发布于 2014/05/12 22:51
阅读 1K+
收藏 1

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

      默认的错误路径为什么要这么设置。已经设置 baseview却不能生效。

        me.setBaseViewPath("/WEB-INF/v/");
        me.setErrorView(401, "/WEB-INF/v/error/401.html");
        me.setErrorView(403, "/WEB-INF/v/error/403.html");
        me.setErrorView(500, "/WEB-INF/v/error/500.html");
        me.setErrorView(404, "/WEB-INF/v/error/404.html");       
         Controller 里设置要加..

         render("../../XXXX/VVVV/list.html");

        按照教程里设置 /XXXX/VVVV/list.html 却不行

      是不是应为我的项目不是根项目。带虚拟路径的 即访问http://localhost:8080/项目名/index

   还有Controller里的 forwardAction  和 redirect 有什么区别?(找到答案:http://www.oschina.net/question/587900_61870?sort=time)

     这个里的 render可以是一个render后路径...? render 的路径我看也是写的("/WEB-INF/xxxxxx")

   请大牛哥帮忙解释一下,一直对路径设置有这个困惑。。。

   如果是我的设置有问题 请指出,或者能一份详细配置的教程。谢谢!!

加载中
0
JFinal
JFinal

     view 以 "/" 打头的都是绝对路径,即便是通过 setBaseViewPath 设置过 base 路径,这样设计也是为了在 setBaseViewPath 后还是有机会访问到非 base view path 之下的 view。所以将 render(" /XXXX/VVVV/list.html")改成 render("XXXX/VVVV/list.html")就打完收工了

    forwardAction是将本次请求在服务端转发给另一个action。redirect 是先响应客户端,并告知再发起一个新的请求。

0
spring3214
spring3214

改成 

 

me.setErrorView(401, "error/401.html");
  me.setErrorView(403, "error/403.html");
  me.setErrorView(500, "error/500.html");
  me.setErrorView(404, "error/404.html");

报错 com.jfinal.render.RenderException: java.io.FileNotFoundException: Template error/404.html not found. 这个不是基于 basepath 的 是基于ActionKey的吗?

因为我的actions可能是 /a/b/c/d 这样,我试着把error这个文件夹放到webroot里,就可以访问

这样设计是不是让 render可以 访问到另外一个view

 这个里的 render可以是一个render后路径...? render 的路径我看也是写的("/WEB-INF/xxxxxx")

这样吗?

如果是这样我建议 render(@render)加特殊符号来区分。笼统在一起感觉配置起来难理解。

 -----------------------------深夜和凌晨----------------------------------------


我的理解是 setBaseViewPath 是把 “/WEB-INF/view” 放到了webroot下 即:

XXXX/VVVV/list.html 访问的是 /WEB-INF/view  + XXXX/VVVV/list.html 

但是如果现在的acitokey 是 a/b/  需要加 ../../ 即  /WEB-INF/view  + a/b/+../../+XXXX/VVVV/list.html 才能访问到 list.html 

/XXXX/VVVV/list.html 这个是直接访问webroot下的 忽略了BaseViewPath 

子木007
子木007
回复 @spring3214 : HEHE. 好在 jfinal 文件不多,看看也就知道了
spring3214
spring3214
回复 @管梨员 : 就是这样的! 先用spring 然后再用jfinal 会有点难理解。
子木007
子木007
他一会儿会告诉你,baseview 只针对 action view, err view要写全路径
返回顶部
顶部