【问题标题】:How to write juel expressionjuel表达式怎么写
【发布时间】:2019-01-28 02:12:39
【问题描述】:

最近我尝试了JUEL,现在我很困惑如何编写几个我在文档中找不到示例的方法。

只给我这个 http://juel.sourceforge.net/guide/start.html

如果我有context.setFunction("meh", "max", BigDecimal.class.getMethod("compareTo", BigDecimal.class));,我想知道如何写出来

因为我们知道 bigDecimal 表达式写成 foo.compareTo(bigDecimal); 这个表达式怎么写?

【问题讨论】:

    标签: java juel


    【解决方案1】:

    用 2 个可能的答案轻松完成

    1. 由于SimpleContext 让您进行算术计算(在我的情况下),我只是将计算放在这里。我还使用ValueExpression(我猜不是在正确的位置)为我提供来自SimpleContext 的映射值。因此,这就是我所拥有的

      context.setVariable("fii", factory.createValueExpression(new BigDecimal(3), BigDecimal.class));
      context.setVariable("fee", factory.createValueExpression(new BigDecimal(5), BigDecimal.class));
      
      ValueExpression e1 = factory.createValueExpression(context, "${fee}", BigDecimal.class);
      ValueExpression e2 = factory.createValueExpression(context, "${fii}", BigDecimal.class);
      
      String temp1 = (String)e1.getValue(context).toString();
      String temp2 = (String)e2.getValue(context).toString();
      
      context.setVariable("foo", factory.createValueExpression(new BigDecimal(temp1).add(new BigDecimal(temp2)), BigDecimal.class));
      
      ValueExpression e = factory.createValueExpression(context, "${foo}", BigDecimal.class);// will return 8
      

    但又一次我真的不知道它是否正确,所以我想出了第二个

    1. 创建一个类,创建一些需要 2 个参数的静态方法,然后就可以了。假设这个类名为Operate

      public static BigDecimal add (BigDecimal val1, BigDecimal val2){
          return val1.add(val2);
      }
      
      public static BigDecimal subtract (BigDecimal val1, BigDecimal val2){
          return val1.subtract(val2);
      }
      

      那么,我就这样称呼它

      context.setFunction("meh", "max", Operate.class.getMethod("add", BigDecimal.class, BigDecimal.class));  
      ValueExpression e = factory.createValueExpression(context, "${meh:max(fii,fee)}", BigDecimal.class);// also return 8  
      

    我更喜欢使用第二个,希望这会有所帮助

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-10-22
      • 1970-01-01
      • 2023-04-09
      • 2012-11-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多