springmvc集成jfinal enjoy 实现 自定义函数配置

    /**
     * 设置 自定义方法
     * 
     * 主要用于 Spring MVC 的 xml 配置方式
     * 
     * Spring Boot 的代码配置方式可使用 setSharedObject(...) 进行配置
     */
    public void setSharedObject(Map<String, Object> para) {
        for(String key:para.keySet()){
            engine.addSharedObject(key, para.get(key));
        }
        
    }

springmvc需要映射必然需要setSharedObject方法   enjoy3.2并没有set方法 所以只能重新往类里面添加方法。

例如我要添加shiro的标签

    <bean id="viewResolver" class="com.maitianer.jfinal.templete.JFinalViewResolver">
        <property name="devMode" value="true"></property>
        <property name="sharedFunction" value="/WEB-INF/views/maitianer/admin/common/_paginate.html"></property>
        <property name="sessionInView" value="true"></property>
        <property name="order" value="1"></property>
        <property name="prefix" value="/WEB-INF/views/"></property>
        <property name="suffix" value=".html"></property> 
        <property name="contentType" value="text/html;charset=utf-8"></property>   
        <property name="sharedObject" >
            <map>
                <entry key="shiro" value-ref="shiroTag" />
            </map>
        </property> 
    </bean>
    
    <bean id="shiroTag" class="com.maitianer.commons.shiro.ShrioTag"/>

shiroTag参考http://www.jfinal.com/share/224

最后修改方法需要把两个类都考出来放到同一个包下 不然模板view路径会找不到项目名

cc.png

下面标签内的方法就可以使用了

#if(shiro.hasPermission("/home/resource/add"))    
<a data-for="/home/resource/add" id="add" class="btn btn-small">        
<i class="icon">&#xe608;</i>新增    
</a>
#end


评论区

打酱油滴

2017-10-15 15:24

同理 自定义标签也是一样 构造setDirective就可以了

JFinal

2017-10-15 17:39

贴主上午还在问相关问题,下午就能写出分享来了,超赞

其实可以完全抛弃现有的 JFinalView 与 JFinalViewResolver,自己实现这个两类的功能,定制出符合需求的自由化实现

JFinal

2017-10-15 17:41

还有一个办法是通过 JFinalViewResolver.engine 得到 engine 对象,再对其进行配置,通过现有的 JFinalViewResolver 可以直接获取到 engine

打酱油滴

2017-10-15 19:41

engine 属性太多了还是这样方便一点而且也要构造set方法

热门分享

扫码入社