如何使用Freemarker在Spring Boot项目中引用自定义权限标签(TLD)?

2026-05-21 06:503阅读0评论SEO教程
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计596个文字,预计阅读时间需要3分钟。

如何使用Freemarker在Spring Boot项目中引用自定义权限标签(TLD)?

第一步:引入jar包xml javax.servlet.jsp jsp-api 2.2.1-b03

第二步:自定义标签类javaimport java.util.Map;import java.util.Set;

public class CustomTag { // 标签逻辑代码}

第一步:引入jar包

<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> </dependency>

第二步:自定义标签类

import java.util.Map; import java.util.Set; import javax.servlet.java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>privilege</shortname> <tag> <name>privilege</name> <tagclass>com.goodidea.sso.core.PrivilegeTag</tagclass> <bodycontent>empty</bodycontent> <!--这里如果设为empty,则无body--> <attribute> <name>menuAlias</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>priAlias</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>


第四:页面引用

<#assign p=JspTaglibs["/WEB-INF/tld/privilege.tld"] />

注意tld,如果不在web.xml上进行引入的话,就放在web-inf下,要不然会报找不到tld资源异常

补充知识:Springboot项目 freemarker 引入shiro 标签

springboot集成shiro权限过程略过

一、添加maven 依赖

<dependency> <groupId>net.mingsoft</groupId> <artifactId>shiro-freemarker-tags</artifactId> <version>0.1</version> </dependency>

二、注入FreeMarkerConfigurer,未指定templateLoaderPath时遇到过跳转到页面404问题

@Bean public FreeMarkerConfigurer freeMarkerConfigurer() throws IOException, TemplateException { FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); freeMarkerConfigurer.setTemplateLoaderPath("classpath:templates/"); freemarker.template.Configuration configuration = freeMarkerConfigurer.createConfiguration(); configuration.setDefaultEncoding("UTF-8"); //这里可以添加其他共享变量 比如sso登录地址 configuration.setSharedVariable("shiro", new ShiroTags()); freeMarkerConfigurer.setConfiguration(configuration); return freeMarkerConfigurer; }

三、shiro标签

1、session中读取登录人信息

<@shiro.principal/>

2、带有loginName属性的对象转换为Prinipal后保存在session

<shiro:principal property="loginName" />

如何使用Freemarker在Spring Boot项目中引用自定义权限标签(TLD)?

3、带有loginName属性的Json(个人使用的是FashJson对象)转换为Prinipal后保存在session,使用freemarker标签处理Json

<#assign loginInfo><@shiro.principal/></#assign>

<#assign data=loginInfo?eval>

用户:${data.loginName!""}

4、其他shiro标签使用

<@shiro.hasPermission name="权限编码">
...
</@shiro.hasPermission>

以上这篇springboot 自定义权限标签(tld),在freemarker引用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。

本文共计596个文字,预计阅读时间需要3分钟。

如何使用Freemarker在Spring Boot项目中引用自定义权限标签(TLD)?

第一步:引入jar包xml javax.servlet.jsp jsp-api 2.2.1-b03

第二步:自定义标签类javaimport java.util.Map;import java.util.Set;

public class CustomTag { // 标签逻辑代码}

第一步:引入jar包

<dependency> <groupId>javax.servlet.jsp</groupId> <artifactId>jsp-api</artifactId> <version>2.2.1-b03</version> </dependency>

第二步:自定义标签类

import java.util.Map; import java.util.Set; import javax.servlet.java.sun.com/j2ee/dtds/web-jsptaglibrary_1_1.dtd"> <taglib> <tlibversion>1.0</tlibversion> <jspversion>1.1</jspversion> <shortname>privilege</shortname> <tag> <name>privilege</name> <tagclass>com.goodidea.sso.core.PrivilegeTag</tagclass> <bodycontent>empty</bodycontent> <!--这里如果设为empty,则无body--> <attribute> <name>menuAlias</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> <attribute> <name>priAlias</name> <required>true</required> <rtexprvalue>true</rtexprvalue> </attribute> </tag> </taglib>


第四:页面引用

<#assign p=JspTaglibs["/WEB-INF/tld/privilege.tld"] />

注意tld,如果不在web.xml上进行引入的话,就放在web-inf下,要不然会报找不到tld资源异常

补充知识:Springboot项目 freemarker 引入shiro 标签

springboot集成shiro权限过程略过

一、添加maven 依赖

<dependency> <groupId>net.mingsoft</groupId> <artifactId>shiro-freemarker-tags</artifactId> <version>0.1</version> </dependency>

二、注入FreeMarkerConfigurer,未指定templateLoaderPath时遇到过跳转到页面404问题

@Bean public FreeMarkerConfigurer freeMarkerConfigurer() throws IOException, TemplateException { FreeMarkerConfigurer freeMarkerConfigurer = new FreeMarkerConfigurer(); freeMarkerConfigurer.setTemplateLoaderPath("classpath:templates/"); freemarker.template.Configuration configuration = freeMarkerConfigurer.createConfiguration(); configuration.setDefaultEncoding("UTF-8"); //这里可以添加其他共享变量 比如sso登录地址 configuration.setSharedVariable("shiro", new ShiroTags()); freeMarkerConfigurer.setConfiguration(configuration); return freeMarkerConfigurer; }

三、shiro标签

1、session中读取登录人信息

<@shiro.principal/>

2、带有loginName属性的对象转换为Prinipal后保存在session

<shiro:principal property="loginName" />

如何使用Freemarker在Spring Boot项目中引用自定义权限标签(TLD)?

3、带有loginName属性的Json(个人使用的是FashJson对象)转换为Prinipal后保存在session,使用freemarker标签处理Json

<#assign loginInfo><@shiro.principal/></#assign>

<#assign data=loginInfo?eval>

用户:${data.loginName!""}

4、其他shiro标签使用

<@shiro.hasPermission name="权限编码">
...
</@shiro.hasPermission>

以上这篇springboot 自定义权限标签(tld),在freemarker引用操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持易盾网络。