看不懂template engine

#for(x:json)

<tr>

<th  scope="row">#(x.get("newstime"))</th>

<td>#(x.get("isuser"))</td>

<td>#(x.get("title"))</td>

</tr>

#end

 我可以#(json)输出json数据   但是通过for() x.get 方式就获取不到json中的值

以下是输出的json

{

    "json2": {

        "titleimg": "",

        "newsid": 3,

        "newstime": "2019-01-08 14:28:47.0",

        "clicknum": 0,

        "title": "b",

        "userid": 1,

        "issuer": "adou"

    },

    "json1": {

        "titleimg": "",

        "newsid": 2,

        "newstime": "2019-01-08 14:28:44.0",

        "clicknum": 0,

        "title": "a",

        "userid": 1,

        "issuer": "adou"

    }

    }


评论区

JFinal

2019-01-10 11:50

#for 指令可以对 List、数组、Map、Set 等类型迭代,不能对 String 内部的数据进行迭代

你的 json 变量看上去是一个 String 类型,将其转换成 Map 类型再迭代即可, 文档中说得很清楚

zzzzcat

2019-01-10 16:12

@JFinal
JSONObject datetime = new JSONObject();
Pagepage = messageMGService.SearchbyData(CurrentPageNumber,1);
Listlist = page.getList();
for (int i = 0; i < list.size(); i++) {
datetime.put("json"+ i, list.get(i).getColumns());
}
setAttr("json", datetime);
我的代码是这样的

JFinal

2019-01-10 16:17

@zzzzcat 直接传入 page 对象就可以了:
setAttr("page", page);

模板中这么用:
#for (x : page.getList())
...
#end

enjoy 的表达式与 java 是直接打通的,所以你可以调用 page.getList() 获取 List 对象,并对其进行迭代

JFinal

2019-01-10 16:17

多看文档,里面都有

zzzzcat

2019-01-10 16:43

@JFinal 谢谢大佬!!!