最近在做权限控制的时候用到了shiro,可惜一窍不通,学了一段时间之后,在freemarker装饰器中集成shiro标签时遇到了一点问题,网上资料都是在普通页面实现,特此记录下,如有理解不对的地方还请各位指正。
1、需要引入jar包,或者到github上下载源码打包使用(也可以实现自己特定需求): https://github.com/zhoushuaichang/shiro-freemarker-tags
1、需要引入jar包,或者到github上下载源码打包使用(也可以实现自己特定需求): https://github.com/zhoushuaichang/shiro-freemarker-tags
2、集成freemarker的配置类FreeMarkerConfigurer,重写afterPropertiesSet()方法:如下
import com.jagregory.shiro.freemarker.ShiroTags;
import freemarker.template.TemplateException;
import org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
import java.io.IOException;
/**
* 继承FreeMarkerConfigurer类,重写afterPropertiesSet()方法;
* 集成shiroTags标签
* Created by zsc on 2016/1/5.
*/
public class ShiroTagFreeMarkerConfigurer extends FreeMarkerConfigurer {
@Override
public void afterPropertiesSet() throws IOException, TemplateException {
super.afterPropertiesSet();
this.getConfiguration().setSharedVariable("shiro", new ShiroTags());
}
}
3、修改freemarker的xml配置文件:把freemarkerConfig bean的class指向自定义的ShiroTagFreeMarkerConfigurer,如下
<!--<bean id="freemarkerConfig" class="org.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer">-->
<bean id="freemarkerConfig" class="com.***.shiro.tag.ShiroTagFreeMarkerConfigurer"><!--shiro标签仅限用在该路径下的ftl页面,不能使用include引入-->
<property name="templateLoaderPath" value="/WEB-INF/viewftl/" />
<property name="freemarkerSettings">
<props>
<prop