2009-04-24 13 views
16

मुझे जावा ऑब्जेक्ट से कुछ गुण पढ़ने के लिए ओजीएनएल का उपयोग करने की आवश्यकता है। ओजीएनएल मेरे लिए पूरी तरह से नई बात है। ओजीएनएल के लिए उपलब्ध दस्तावेज ओजीएनएल की वेबसाइट वास्तव में मुझे भ्रमित कर रही है।जावा में ओजीएनएल हैलो वर्ल्ड

तो कोई भी OGNL का उपयोग करने के लिए एक सरल HelloWorld उदाहरण प्रदान कर सकता है (या ट्यूटोरियल के किसी भी लिंक भी सहायक है)।

उत्तर

9

इस प्रयास करें:

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); 
-1

यहाँ jython (अजगर कि जावा के लिए संकलित) के लिए एक उदाहरण HelloWorld है।

from ognl import Ognl, OgnlContext 
from java.lang import String 

exp = Ognl.parseExpression("substring(2, 5)") 

print Ognl.getValue(exp, OgnlContext(), String("abcdefghj")) 
7

इरादा केवल है एक वस्तु तो PropertyUtils.getProperty (कॉमन्स-beanutils से) से गुण पढ़ने के लिए पर्याप्त हो सकता है। हालांकि, अगर इरादा सशर्त और ऐसे मूल्यांकन का मूल्यांकन करना है, तो ओग्नल का लाभ हो सकता है।

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 
0

OGNL आप स्ट्रिंग भाव जो बहुत उपयोगी हो जाता है जब आप खो डेटा के बीच वास्तुकला युग्मित है और यह उपभोक्ताओं है के माध्यम से वस्तुओं के खेतों और तरीकों का उपयोग करने की अनुमति देता है:

यहाँ एक बूलियन के साथ एक ही आयाम उदाहरण है। यह हुड के तहत प्रतिबिंब का उपयोग कर रहा है लेकिन शुद्ध प्रतिबिंब दृष्टिकोण की तुलना में निश्चित रूप से विकास को गति देता है।

कुछ एक पंक्ति उदाहरण

System.out.println(Ognl.getValue("x", new Point(5,5))); 
System.out.println(Ognl.getValue("size", new ArrayList<Object>())); 

Documentation पहले से ही बुनियादी और अधिक उन्नत ognl भाव की एक संख्या है।

संबंधित मुद्दे