新建属性功能文件“beetl.properties”
# To change this license header, choose License Headers in Project Properties.
# To change this template file, choose Tools | Templates
# and open the template in the editor.
RESOURCE.root=/
#自定义配置
DELIMITER_STATEMENT_START=@
DELIMITER_STATEMENT_END=null
#
TEMPLATE_CHARSET=UTF-8
## 注册方法
#FN.hasSession=com.common.function.HasWebSession
##注册功能包
FNP.StringUtil = com.common.function.StringUtil
第二步在指定的HTMLFilter类中配置
import java.io.IOException;
import java.util.Enumeration;
import java.util.HashMap;
import java.util.Map;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.FilterConfig;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import org.beetl.core.GroupTemplate;
import org.beetl.ext.jfinal.BeetlRenderFactory;
import org.beetl.ext.web.SimpleCrossFilter;
/**
*
* @ClassNmae:HTMLFilter
* @author zlx-雄雄
* @date 2017-8-16 11:42:41
*
*/
public class HTMLFilter extends SimpleCrossFilter implements Filter {
@Override
public void init(FilterConfig arg0) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException,ServletException {
response.setContentType("text/html;charset=UTF-8");
response.setCharacterEncoding("UTF-8");
request.setCharacterEncoding("UTF-8");
Enumeration<String> names = request.getParameterNames();
Map<String, Object> param = new HashMap<>();
while(names.hasMoreElements()){
String key = names.nextElement();
param.put(key, request.getParameter(key));
}
request.setAttribute("param", param);
super.doFilter(request, response, chain);
}
@Override
protected GroupTemplate getGroupTemplate() {
return BeetlRenderFactory.groupTemplate;
}
}
可以在jfinal配置类的configConstant(Constants me)【系统启动配置常量初始化】方法中设置共享变量
public static JPushClient jpushClient;
public static GroupTemplate gt;
/**
* 系统启动配置常量初始化
* @param me
*/
@Override
public void configConstant(Constants me) {
me.setEncoding("UTF-8");
PropKit.use("config.txt");// 加载少量必要配置,随后可用getProperty(...)获取值
me.setDevMode(PropKit.getBoolean("devMode", Boolean.TRUE));
me.setError404View("/error/error404.html");
me.setError500View("/error/error500.html");
me.setJspViewExtension("/error/exceptionPage.jsp");
me.setBaseUploadPath(PathKit.getWebRootPath() + "\\tempupload\\");
me.setMainRenderFactory(new BeetlRenderFactory());
gt = BeetlRenderFactory.groupTemplate;//根据gt可以添加扩展函数,格式化函数,共享变量等
Map<String, Object> shard = new HashMap<>();//共享变量
shard.put("path", JFinal.me().getContextPath());//添加共享变量上下文路径
String static_url = PropKit.get("static_url");
shard.put("static_url",static_url );
shard.put("image_upload_url", static_url+PropKit.get("image_upload_url"));
shard.put("upload_url", static_url+PropKit.get("upload_url"));
shard.put("file_manager_json_url", static_url+PropKit.get("file_manager_json_url"));
gt.setSharedVars(shard);//设置共享变量
}