struts2的ognl表达式二:支持函数使用
2015-04-15 22:27
477 查看
不断的学习,不断的进步,今天才知道原来ognl还能支持函数,下面咱们就以具体案例来了解一下:
1、页面代码,红色高亮处可以看出在ognl中调用了后台的函数:
1、页面代码,红色高亮处可以看出在ognl中调用了后台的函数:
<html> <head> <title>导航菜单</title> <%@ include file="/WEB-INF/jsp/public/commons.jspf"%> <link type="text/css" rel="stylesheet" href="style/blue/menu.css" /> <script type="text/javascript"> function menuClick( menu ){ $(menu).next().toggle(); } </script> </head> <body style="margin: 0"> <div id="Menu"> <ul id="MenuUl"> <%-- 显示一级菜单 --%> <s:iterator value="#application.topPrivilegeList"> <s:if test="#session.user.hasPrivilegeByName(name)"> <li class="level1"> <div onClick="menuClick(this);" class="level1Style"> <img src="style/images/MenuIcon/${id}.gif" class="Icon" /> ${name} </div> <ul style="" class="MenuLevel2" id="aa"> <%-- 显示二级菜单 --%> <s:iterator value="children"> <s:if test="<span style="color:#ff0000;"><strong>#session.user.hasPrivilegeByName(name)</strong></span>"> <li class="level2"> <div class="level2Style"> <img src="style/images/MenuIcon/menu_arrow_single.gif" /> <a target="right" href="${pageContext.request.contextPath}${url}.action"> ${name}</a> </div> </li> </s:if> </s:iterator> </ul> </li> </s:if> </s:iterator> </ul> </div> </body> </html>2、后台的代码,实体
package cn.itcast.oa.domain; import java.util.Collection; import java.util.HashSet; import java.util.Set; import com.opensymphony.xwork2.ActionContext; /** * 用户 * * @author tyg * */ public class User implements java.io.Serializable{ private Long id; private Department department; private Set<Role> roles = new HashSet<Role>(); private String loginName; // 登录名 private String password; // 密码 private String name; // 真实姓名 private String gender; // 性别 private String phoneNumber; // 电话号码 private String email; // 电子邮件 private String description; // 说明 /** * 判断本用户是否有指定名称的权限 * * @param name * @return */ <strong><span style="color:#ff0000;">public boolean hasPrivilegeByName(String name) { // 超级管理有所有的权限 if (isAdmin()) { return true; } // 普通用户要判断是否含有这个权限 for (Role role : roles) { for (Privilege priv : role.getPrivileges()) { if (priv.getName().equals(name)) { return true; } } } return false; }</span></strong> /** * 判断本用户是否是超级管理员 * * @return */ public boolean isAdmin() { return "admin".equals(loginName); } public Long getId() { return id; } public void setId(Long id) { this.id = id; } public Department getDepartment() { return department; } public void setDepartment(Department department) { this.department = department; } public Set<Role> getRoles() { return roles; } public void setRoles(Set<Role> roles) { this.roles = roles; } public String getLoginName() { return loginName; } public void setLoginName(String loginName) { this.loginName = loginName; } public String getPassword() { return password; } public void setPassword(String password) { this.password = password; } public String getName() { return name; } public void setName(String name) { this.name = name; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public String getPhoneNumber() { return phoneNumber; } public void setPhoneNumber(String phoneNumber) { this.phoneNumber = phoneNumber; } public String getEmail() { return email; } public void setEmail(String email) { this.email = email; } public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } }
相关文章推荐
- 使用传统算法进行表达式求值(数字支持科学表示法,操作符支持加减乘除乘方, 支持括号, 不支持函数)
- Struts2使用OGNL表达式封装输入数据
- Struts2使用OGNL表达式封装输入数据(直接封装Map类型)
- 使用正则表达式检验sql语句(只支持select(不含函数,子
- struts2 中 OGNL表达式的使用
- Struts2 OGNL表达式的使用
- struts2中使用OGNL表达式
- OGNL表达式和struts2中的使用
- ognl学习(二)---struts2标签库与OGNL表达式的使用
- Struts2标签中支持OGNL表达式的热计算及带参数的<s:a>链接
- Struts2的OGNL表达式的使用
- struts2 中 OGNL表达式的使用
- struts2 中 OGNL表达式的使用
- 使用struts2中的ognl表达式调用类方法
- Struts2 使用OGNL表达式访问ENUM对象
- struts2中OGNL表达式的使用
- struts2中使用ognl表达式时各种符号的使用规则$,#,%
- struts2对ognl表达式的使用(配图解加讲解)
- struts2对ognl表达式的使用(配图解加讲解)
- struts2:OGNL表达式,遍历List、Map集合;投影的使用