Java中的OGNL Hello World

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (15)

我需要使用OGNL从Java对象读取一些属性。OGNL对我来说是全新的东西。OGNL可用的文档是OGNL的网站,这让我很困惑。

所以任何人都可以提供一个HelloWorld使用OGNL 的简单示例(或者任何指向教程的链接也很有帮助)。

提问于
用户回答回答于

尝试这个:

    Dimension d = new Dimension(2,2);

    String expressionString = "width";
    Object expr = Ognl.parseExpression(expressionString);

    OgnlContext ctx = new OgnlContext();
    Object value = Ognl.getValue(expr, ctx, d);

    System.out.println("Value: " + value);
用户回答回答于

如果意图只是从对象读取属性,那么PropertyUtils.getProperty(来自commons-beanutils)就足够了。但是,如果意图是评估条件等,那么Ognl可能会受益。

这是与布尔值相同的Dimension示例:

Dimension d = new Dimension();
d.setSize(100,200) ;// width and height

Map<String,Object> map = new HashMap<String,Object>();
map.put("dimension", d);

String expression = "dimension.width == 100 && dimension.height == 200";
Object exp = Ognl.parseExpression(expression);
Boolean b = (Boolean) Ognl.getValue(exp,map);
// b would evaluate to true in this case

扫码关注云+社区