博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
springmvc freemarker 页面访问静态类的解决方法
阅读量:7199 次
发布时间:2019-06-29

本文共 3216 字,大约阅读时间需要 10 分钟。

一.利用BaseController 方式处理

定义BaseController 如下:

  

package com.ly.jxc.controller;import org.springframework.stereotype.Controller;import freemarker.ext.beans.BeansWrapper;import freemarker.template.TemplateHashModel;import freemarker.template.TemplateModelException;@Controllerpublic class BaseController {    private final static BeansWrapper wrapper = BeansWrapper            .getDefaultInstance();    private final static TemplateHashModel staticModels = wrapper            .getStaticModels();    protected static TemplateHashModel useStaticPacker(String packname) {        TemplateHashModel fileStatics = null;        try {            fileStatics = (TemplateHashModel) staticModels.get(packname);        } catch (TemplateModelException e) {            e.printStackTrace();        }        return fileStatics;    };}

其他controller 继承 BaseController ,需要返回静态类时候 如下:

//register 静态访问 map.put("rule",useStaticPacker("com.ly.jxc.RuleUtils"));

 页面使用:

<#if user.canRead(RuleUtils.BUY_ORDER) || user.canRead(RuleUtils.BUY_LOG) >.....

二 使用配置方式

定义FreemarkerStaticModels.java  如下:

package com.ly.jxc.util;import java.util.HashMap;import java.util.Properties;import java.util.Set;import freemarker.ext.beans.BeansWrapper;import freemarker.template.TemplateHashModel;/** *   处理freeMarker  访问静态类静态方法 * @author Administrator * */public class FreemarkerStaticModels extends HashMap
{ /** * */ private static final long serialVersionUID = 1L; private static FreemarkerStaticModels FREEMARKER_STATIC_MODELS; private Properties staticModels; private FreemarkerStaticModels(){ } public static FreemarkerStaticModels getInstance(){ if(FREEMARKER_STATIC_MODELS==null){ FREEMARKER_STATIC_MODELS=new FreemarkerStaticModels(); } return FREEMARKER_STATIC_MODELS; } public Properties getStaticModels() { return staticModels; } public void setStaticModels(Properties staticModels) { if(this.staticModels==null&&staticModels!=null){ this.staticModels = staticModels; Set
keys=this.staticModels.stringPropertyNames(); for (String key : keys) { FREEMARKER_STATIC_MODELS.put(key, useStaticPackage(this.staticModels.getProperty(key))); } } } public static TemplateHashModel useStaticPackage(String packageName){ try { BeansWrapper wrapper = BeansWrapper.getDefaultInstance(); TemplateHashModel staticModels = wrapper.getStaticModels(); TemplateHashModel fileStatics = (TemplateHashModel) staticModels.get(packageName); return fileStatics; } catch (Exception e) { e.printStackTrace(); } return null; }}

定义staticClass.properties 

RuleUtils=com.ly.jxc.util.RuleUtils

在springmvc.xml 配置文件中

页面使用 同上。

 

最后说下两种的选择: 第一种实用于哪里用到哪里调用,第二种是直接返回所有到页面。

 

  

转载于:https://www.cnblogs.com/yqweber/p/3992513.html

你可能感兴趣的文章
自定义navigationBar的高度
查看>>
判断字符串中是否包含有数字
查看>>
面试题27:连续子数组的最大和
查看>>
Java压缩技术的学习
查看>>
Java获取客户端真实IP地址的两种方法
查看>>
MVC3中,在control里面三种Html代码输出形式
查看>>
修杰楷_百度百科
查看>>
第七周 Word文档修订
查看>>
LINQ 图解 LINQ学习第三篇
查看>>
微信公众平台开发(七) 聊天机器人功能开发
查看>>
jQuery源码分析系列
查看>>
UVA 10817 Headmaster's Headache(DP +状态压缩)
查看>>
百度地图纠偏处理
查看>>
Winform开发--控件
查看>>
HDUOJ---(4708)Rotation Lock Puzzle
查看>>
TFS2010中文版安装
查看>>
【Android】Handler详解
查看>>
太有才了!创新的街头涂鸦手绘欣赏【中篇】
查看>>
ZOJ 2624 Popo's Lamps(DP 记忆化搜索)
查看>>
ant中copy操作学习心得(转)
查看>>