jfinal官网上的demo下载下来,遍历左侧菜单栏层级数据

从数据库查询的层级数据,无限极的,在界面怎么显示,之前用的都是跟着demo默认写的,现在想遍历这些数据求解决,下面那个@就是别的项目的。显示递归数据,不知道在默认的demo中怎么写4ZE0ODPW~@2~D4KW(EJQUPS.png

评论区

215115704

2018-01-25 10:04

实现无限极遍历的写法。。。

JFinal

2018-01-25 13:02

用 #define showMenu(...) 定义一个 function,然后递归调用之

215115704

2018-01-25 14:49

@JFinal 那我定义了这么一个函数,我能在这个函数里面调用自己的这个函数么

215115704

2018-01-25 15:00

<@module list="${module !}" />这句在别的jfinal项目中是有一个tag文件,里面也有 <@module list="${m.sub!}" />,实现无线递归,我想在官网下的demo去实现这个

杜福忠

2018-01-25 23:20

@215115704
比较简单的 递归调用函数体:
#define showMenu(me){
...html...
#@showMenu(me.menus)
...html...
}


如果你的函数体比较复杂 , 可以建一个java , 使用下面方式去调用,

6.8 Shared Object扩展



    通过使用addSharedObject方法,将某个具体对象添加为共享对象,可以全局进行使用,以下是代码示例:

  1. public void configEngine(Engine me) {
  2.    me.addSharedObject("RESOURCE_HOST", "http://res.jfinal.com");
  3.    me.addSharedObject("sk", new com.jfinal.kit.StrKit());
  4. }

    以上代码中的第二行,添加了一个名为RESOURCE_HOST的共享对象,而第三行代码添加了一个名为sk的共享对象,以下是在模板中的使用例子:

  1. <img src="#(RESOURCE_HOST)/img/girl.jpg" />
  2. #if(sk.isBlank(title))
  3.    ...
  4. #end

    以上代码第一行中使用输出指令输出了RESOUCE_HOST这个共享变量,对于大型web应用系统,通过这种方式可以很方便地规划资源文件所在的服务器。以上第二行代码调用了名为sk这个共享变量的isBlank方法,使用方式符合开发者直觉。

    注意:由于对象被全局共享,所以需要注意线程安全问题,尽量只共享常量以及无状态对象。


热门反馈

扫码入社