shrio標籤在js頁面不生效問題

原文鏈接:https://blog.csdn.net/qq_29290295/article/details/88290005

場景:

頁面使用的是DataTables,做一個後臺管理系統。頁面按鈕shiro標籤可以直接控制,這個沒問題,但是,列表,分頁,以及列表每一行內的操作按鈕都是通過引入一個js文件異步加載出來的。如:list.js.,列表每一行都有行內操作的需求,只是根據配置的權限,每個角色會有不同的操作權限。直接在list.js中用

"columnDefs": [
			{
				'orderable': false,
				'targets': [12],
				"render": 
					function ( data, type, row ) {
					     	var str='';
							<shiro:hasPermission name="update">
								str+='<button type="button" class="btn btn-sm btn-outline grey-salsa" οnclick="showTenant('+data+',\'update\')">修改</button>';
							</shiro:hasPermission>
							<shiro:hasPermission name="delete">
								str+='<button type="button" class="btn btn-sm btn-outline grey-salsa" οnclick="showTenant('+data+',\'delete\')">刪除</button>';
							</shiro:hasPermission>							
							return str;
					}
			}
}

直接使用shiro標籤無效。

## 解決方案:
既然JSP頁面shiro標籤可以生效,在引用的JS文件中無效。那就在JSP頁面中加入一個頁面內的js,作爲過渡,shiro控制這個過渡的js,然後list.js文件引用這個js。

### 一、jsp頁面加入js。

```jsp
//操作按鈕權限控制
function getPermission ( data, type, row ) {
	var str='';
	<shiro:hasPermission name="update">
		str+='<button type="button" class="btn btn-sm btn-outline grey-salsa" οnclick="showTenant('+data+',\'update\')">修改</button>';
	</shiro:hasPermission>
	<shiro:hasPermission name="delete">
		str+='<button type="button" class="btn btn-sm btn-outline grey-salsa" οnclick="showTenant('+data+',\'delete\')">刪除</button>';
	</shiro:hasPermission>
	return str;	
}

二、 在list.js中修改爲:

"columnDefs": [
			{
				'orderable': false,
				'targets': [12],
				"render": 
					function ( data, type, row ) {
                        return getPermission(data, type, row);
					}
			}
}

原文章鏈接:https://blog.csdn.net/qq_29290295/article/details/88290005

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章