#render动态URL加载数据问题

#render(temp)中的参数只能是html页面,是否可以改为动态的URL?如#render('/news/list',参数)。类似于jquery load函数。这样的指令很常用的,方便按模块加载数据,符合JFinal极速极简模式。


或者哪位高手写下实现的代码,让我参考下。

评论区

JFinal

2017-08-01 00:09

可以写个扩展指令 #renderUrl ,大致如下:
1:创建 RenderUrlDirective extends Directive
2:内部用一个 String content = HttpKit.get(url) 先获取url 指向的数据
3: ret = engine.getTemplateByString(content).renderToString() 得到渲染结果
4:通过 writer.write(ret) 将结果输出即可

具体可以参考一下 com.jfinal.template.ext.directive 下面的已有扩展

北流家园网

2017-08-01 10:08

比较愚钝,不懂写,烦请多多明示一下,谢谢!
public void exec(Env env, Scope scope, Writer writer) {
HttpServletRequest request=(HttpServletRequest) scope.get("request");
String url=request.getRequestURI();
String content=HttpKit.get(url);
Engine engine=RenderManager.me().getEngine();
//Ret ret=engine.getTemplateByString(content);
}