使用EL表达式调用java方法

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方法 的全部内容, 来源链接: utcz.com/z/393447.html

回到顶部