spring boot + shiro +freemark
ftl页面加上shiro-tag组件
1.pom.xml
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
<shiro.version>1.4.0</shiro.version>
<spring.version>5.0.1.RELEASE</spring.version>
</properties>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-freemarker</artifactId>
</dependency>
<!-- shiro start -->
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-spring</artifactId>
<version>${shiro.version}</version>
</dependency>
<dependency>
<groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
<version>1.2.3</version>
</dependency>
<dependency>
<groupId>net.mingsoft</groupId>
<artifactId>shiro-freemarker-tags</artifactId>
<version>0.1</version>
</dependency>
<!-- shiro end -->
2.
importcom.jagregory.shiro.freemarker.ShiroTags;
importfreemarker.template.Configuration;
importfreemarker.template.TemplateModelException;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Service;
importjavax.annotation.PostConstruct;
@Service
public classFreemarkerConfig {
@Autowired
privateConfigurationconfiguration;
@PostConstruct
public void setSharedVariable()throwsTemplateModelException {
configuration.setSharedVariable("shiro", new ShiroTags());
}
}
出现如下错误
改进方法:
importcom.jagregory.shiro.freemarker.ShiroTags;
importfreemarker.template.TemplateModelException;
importorg.springframework.beans.factory.annotation.Autowired;
importorg.springframework.stereotype.Component;
importorg.springframework.web.servlet.view.freemarker.FreeMarkerConfigurer;
importjavax.annotation.PostConstruct;
@Component
public classFreemarkerComponent {
@Autowired
privateFreeMarkerConfigurerfreeMarkerConfigurer;
@PostConstruct
public void setSharedVariable()throwsTemplateModelException {
freeMarkerConfigurer.getConfiguration().setSharedVariable("shiro", new ShiroTags());
}
}
3:在ftl页面使用shiro-tag
<@
shiro.hasPermission name=
"role:edit2"
>
<span>
有管理员权限
</span>
</@
shiro.hasPermission
>