jsp中JSTL的定义map进行权限的渲染

56 阅读1分钟

情景:因为后端的model返回的数据为数组要转为map

buttons服务端渲染的modal的结构

buttons=[{code:'bb',name:"测试"},{code:'bbc',name:"测试2"}]

定义了myMap的map然后通过forEach进行值的赋值

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<%@ taglib prefix="spring" uri="http://www.springframework.org/tags" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="ctx" value="${pageContext.request.contextPath}"/>
<%
    pageContext.setAttribute("myMap", new java.util.HashMap());
%>
<c:forEach var="button" items="${buttons}">
    <c:set target="${myMap}" property="${button.code}" value="true" />
</c:forEach>
<c:set var="permissionButton" value="${myMap}"/>

使用渲染

<c:if test="${permissionButton['bb']}">
  有权限就渲染
</c:if>

建议:后端将直接返回map数据进行接受

buttons数据结构

//buttons数据
buttons={code:'bb',code:'bbc'}

设置变量

<%@ page language="java" import="java.util.*" pageEncoding="UTF-8" %>
<%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %>
<c:set var="permissionButton" value="${buttons}"/>

使用变量

<c:if test="${permissionButton['bb']}">
  有权限就渲染
</c:if>