Jfinal3.0,3.1发布之后,新的模板引擎受到了普遍的欢迎,小伙伴们纷纷使用。html
一些在3.0以前进行开发的系统,因为不支持该引擎,你们很纠结,因此写这样的一篇博文来和你们分享,java
但愿你们多多支持波总,支持JFINAL,支持模板引擎Template!express
首先创建BaseController.java文件:apache
package com.test; import com.jfinal.core.Controller; import com.jfinal.template.Engine; public class BaseController extends Controller { public static final Engine engine = new Engine(); public static Engine getEngine() { return engine; } public void renderTemplate(String view) { render(new TemplateRender(view)); } }
第二步,创建TemplateRender.java文件(这里注意放到您的项目包中)app
/** * Copyright (c) 2011-2017, James Zhan 詹波 (jfinal@126.com). * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.test; import java.io.PrintWriter; import java.util.Enumeration; import java.util.HashMap; import java.util.Map; import com.jfinal.render.Render; import com.jfinal.render.RenderException; import com.jfinal.template.Engine; /** * TemplateRender */ public class TemplateRender extends Render { private static Engine engine = BaseController.getEngine(); private static final String contentType = "text/html; charset=" + getEncoding(); public static void setEngine(Engine engine) { if (engine == null) { throw new IllegalArgumentException("engine can not be null"); } TemplateRender.engine = engine; } public TemplateRender(String view) { this.view = view; } public String getContentType() { return contentType; } public void render() { response.setContentType(getContentType()); Map<Object, Object> data = new HashMap<Object, Object>(); for (Enumeration<String> attrs=request.getAttributeNames(); attrs.hasMoreElements();) { String attrName = attrs.nextElement(); data.put(attrName, request.getAttribute(attrName)); } PrintWriter writer = null; try { writer = response.getWriter(); engine.getTemplate(view).render(data, writer); } catch (Exception e) { throw new RenderException(e); } finally { if (writer != null) { writer.close(); } } } public String toString() { return view; } }
第三步,配置Config.javaless
在ui
afterJFinalStart()
方法中添加以下代码:this
Engine engine = BaseController.getEngine(); engine.setBaseTemplatePath(PathKit.getWebRootPath()); engine.setDevMode(true);
第四步,引入jfinal-3.1-template-engine.jarhtm
文件已上传到jfinal群 模板引擎
打完收工!
感谢波总指导使用!