shiro与freemarker标签集成

    xiaoxiao2021-03-25  87

    关于shiro标签与freemarker模板引擎集成

              最近开发的新系统中,使用到了shiro管理权限,前台页面采用freemarker模板来处理的,当前台页面有些按钮或者标签需要权限控制时,freemarker本身对struts2的标签库支持很到位,导入dtd文件(在struts核心包里)在web-info下就行了,然而对shiro的标签支持不是很完整,尽管提供了相关支持。下面说说两者具体怎么集成:

     

           freemarker之所以和shiro标签兼容不好是因为struts2-core.jar的相关类对shiro进行了拦截处理,所以必须重新调整该方法。

           1. 下载shiro-freemarker-tags.jar包 ( 里面都封装了和jsp页面导入相同的标签库)

           2. 打开struts2-core-2.1.8.1.jar的包,找到FreemarkerManager.class文件,反编译class出来的类中找到getConfiguration(ServletContext servletContext) throws TemplateException   在该类中添加如下代码:config.setSharedVariable("shiro", new ShiroTags());  然后编译成class文件后重新放入该包对应的位置中,记得编译时工程包路径和环境必须一直,否编译后不可用。

           3.  然后在freemarker的模板页面html中添加shiro的标签<@shiro.hasPermission name="auth:role:add">hello world</@shiro.hasPermission> 即可!

    转载请注明原文地址: https://ju.6miu.com/read-15882.html

    最新回复(0)