Giter VIP home page Giter VIP logo

ognl's Introduction

Object-Graph Navigation Language - OGNL

Build Status Maven Central License

It's a simple Expression Language (EL) for Java, the code base sometime ago was migrated to the Apache commons ognl and this source code is used just to maintenance 3.x branch. The new version from Apache will start from 4.x

New! Apache commons ognl project

Out of incubator and now officially found here http://commons.apache.org/ognl/

Description

OGNL stands for Object-Graph Navigation Language; it is an expression language for getting and setting properties of Java objects. You use the same expression for both getting and setting the value of a property.

The ognl.Ognl class contains convenience methods for evaluating OGNL expressions. You can do this in two stages, parsing an expression into an internal form and then using that internal form to either set or get the value of a property; or you can do it in a single stage, and get or set a property using the String form of the expression directly.

OGNL started out as a way to set up associations between UI components and controllers using property names. As the desire for more complicated associations grew, Drew Davidson created what he called KVCL, for Key-Value Coding Language, egged on by Luke Blanshard. Luke then reimplemented the language using ANTLR, came up with the new name, and, egged on by Drew, filled it out to its current state. Later on Luke again reimplemented the language using JavaCC. Further maintenance on all the code is done by Drew (with spiritual guidance from Luke).

We pronounce OGNL as a word, like the last syllables of a drunken pronunciation of "orthogonal."

FAQ

  • How to define an AccessMember?
    • the best way is to implement your own AccessMember which will suite your project best, you can base on existing DefaultAccessMember and adjust it to your needs. Since version 3.2.16 there is AbstractAccessMemeber which can be used a start point for your own implementation, see the example below:
         MemberAccess memberAccess = new AbstractMemberAccess() {
             @Override
             public boolean isAccessible(Map context, Object target, Member member, String propertyName) {
                 int modifiers = member.getModifiers();
                 return Modifier.isPublic(modifiers);
             }
         };
      
  • How to run OGNL in Google AppEngine?
    • you need to tell OGNL to not do security manager permission checks, which will fail since GAE has a security manager and you don't have the ability to add the OGNL-specific permissions. Therefore, somewhere in your initialization code, add this OgnlRuntime.setSecurityManager(null);.

ognl's People

Contributors

lukaszlenart avatar jkuhnert avatar jcgh4164838gh792c124b5 avatar kazuki43zoo avatar harawata avatar danielfernandez avatar marvin-enthus avatar peteruhnak avatar yasserzamani avatar rolandhe avatar johnou avatar rainerh avatar aleksandr-m avatar marvkis avatar vlastimil-dolejs avatar quaff avatar dependabot[bot] avatar hengyunabc avatar ksucontract avatar mlw5415 avatar sebthom avatar

Watchers

James Cloos avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.