工作流EL表达式,实现灵活节点配置

1.pom架包引用

    <dependency>
    <groupId>juel</groupId>
    <artifactId>juel</artifactId>
    <version>2.1.0</version>

2.pom下载地址

http://www.java2s.com/Code/Jar/j/Downloadjuel210jar.htm

2.EL表达式实例

package com.dky.main;

import java.util.HashMap;
import java.util.Map;

import javax.el.ExpressionFactory;
import javax.el.ValueExpression;

import org.apache.el.ExpressionFactoryImpl;

import de.odysseus.el.util.SimpleContext;

public class EL {
	public static Boolean checkFormDataByRuleEl(String el, Map<String, Object> formData) throws Exception {

		ExpressionFactory factory = new ExpressionFactoryImpl();
		SimpleContext context = new SimpleContext();
		for (Object k : formData.keySet()) {
			if (formData.get(k) != null) {
				context.setVariable(k.toString(),
						factory.createValueExpression(formData.get(k), formData.get(k).getClass()));
			}
		}

		ValueExpression e = factory.createValueExpression(context, el, Boolean.class);
		return (Boolean) e.getValue(context);
	}

	public static void main(String[] args) throws Exception {
		String el = "${(请假天数 > 2 && 部门 == '研发部') || 职位=='程序猿'}";
		Map<String, Object> formData = new HashMap<>();
		formData.put("请假天数", 5);
		formData.put("部门", "研发部");
		formData.put("职位", "经理");
		System.out.println(checkFormDataByRuleEl(el, formData));

	}

}
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
EL表达式(Expression Language)是JSP中的一种表达式语言,用于在JSP页面中调用JavaBean或其他对象的属性和方法,以及执行一些简单的逻辑运算。使用EL表达式可以简化JSP页面的代码,使其更加易读易维护。 在实现用户登录功能时,可以使用EL表达式来获取用户输入的用户名和密码,并进行验证。具体步骤如下: 1. 在JSP页面中定义一个表单,用于用户输入用户名和密码: ``` <form action="login.jsp" method="post"> <label for="username">用户名:</label> <input type="text" id="username" name="username"> <br> <label for="password">密码:</label> <input type="password" id="password" name="password"> <br> <input type="submit" value="登录"> </form> ``` 2. 在login.jsp页面中获取用户输入的用户名和密码,并进行验证: ``` <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title>登录结果</title> </head> <body> <c:set var="username" value="${param.username}" /> <c:set var="password" value="${param.password}" /> <c:choose> <c:when test="${empty username}"> <p>用户名不能为空!</p> </c:when> <c:when test="${empty password}"> <p>密码不能为空!</p> </c:when> <c:otherwise> <c:if test="${username eq 'admin' and password eq '123456'}"> <p>登录成功!</p> </c:if> <c:if test="${username ne 'admin' or password ne '123456'}"> <p>用户名或密码错误!</p> </c:if> </c:otherwise> </c:choose> </body> </html> ``` 在上述代码中,首先使用<c:set>标签获取用户输入的用户名和密码,然后使用<c:choose>、<c:when>和<c:otherwise>标签进行逻辑判断,最后使用<c:if>标签进行用户名和密码的验证。如果用户名或密码为空,则输出相应的错误信息;如果用户名和密码都正确,则输出登录成功的信息;否则输出用户名或密码错误的信息。 需要注意的是,在使用EL表达式时,需要导入JSTL标准标签库的相关文件,例如: ``` <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%> ``` 这样才能正确使用<c:set>、<c:choose>、<c:when>、<c:otherwise>和<c:if>等标签。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值