使用EL表达式调用java方法
Posted 高压锅里的小白
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用EL表达式调用java方法相关的知识,希望对你有一定的参考价值。
首先,新建一个类,类中写一个静态方法
1 public class PrivilegeUtils { 2 public static Boolean checkPrivilegeByName(User user, String name){ 3 if(isAdmin(user.getLoginName())){ 4 return true; 5 } 6 for(Role r : user.getRoles()){ 7 for(Privilege p : r.getPrivileges()){ 8 if(name.equals(p.getName())){ 9 return true; 10 } 11 } 12 } 13 return false; 14 } 15 }
然后在WEB-INF文件夹下新建一个tld文件(注意:可以放入自己新建的文件夹中,但不能放在lib和classess目录中)
tld中内容如下
<?xml version="1.0" encoding="UTF-8"?> <taglib version="2.0" xmlns="http://java.sun.com/xml/ns/j2ee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-jsptaglibrary_2_0.xsd"> <tlib-version>1.0</tlib-version> <short-name>myFunction</short-name> <uri>http://www.privilege.demo.com/myFunction</uri> <function> <name>checkPrivilegeByName</name> <function-class>com.demo.privilege.utils.PrivilegeUtils</function-class> <function-signature>java.lang.Boolean checkPrivilegeByName(com.demo.privilege.entity.User, java.lang.String)</function-signature> </function> </taglib>
接着,在jsp的头部引入
<%@ taglib uri="http://www.privilege.demo.com/myFunction" prefix="myFunction"%>
最后就是使用了
${myFunction:checkPrivilegeByName(loginUser, privilegeTop.name)}
以上是关于使用EL表达式调用java方法的主要内容,如果未能解决你的问题,请参考以下文章