<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    posts - 495,  comments - 11,  trackbacks - 0

    OGNL是Object Graph Navigation Language的縮寫,與JSP,JSF相比,OGNL是一種功能非常強大的針對Java的表達式語言(EL),它可用來讀取和更新Java對象的屬性。

    OGNL可以用在以下方面:
    - 用做數據綁定語言用來綁定GUI元素(textfield, combobox等)到模型對象
    - 用做數據源語言用來映射數據庫表到表模型對象
    - 用做數據綁定語言用來綁定web組件到數據模型(WebOGNLTapestryWebWork等)
    - 提供類似Jakarta Commons BeanUtils所提供的功能(讀取Java對象的屬性)

    OGNL表達式語法:
    Java標準類型:
    bool類型:true,false
    int類型:10, 0xABCD等
    long類型:100L
    float類型:1.0, 0.5F等
    double類型:0.01D
    char類型:'A', '\uFFFF'等
    字符串類型:"Hello World!"
    null

    OGNL獨自類型:
    例:10.01B,相當于java.math.BigDecimal
    例:100000H,相當于java.math.BigInteger

    OGNL表達式中能使用的操作符號:
    OGNL表達式中能使用的操作符基本跟Java里的操作符一樣,除了能使用 +, -, *, /, ++, --, ==, !=, = 等操作符之外,還能使用 mod, in, not in等

    變量的引用:
    使用方法:#變量名
    例:#this, #user.name

    對靜態方法或變量的訪問:
    @mypkg.MyClass@myVar
    @mypkg.MyClass@myMethod()

    讀取變量值:
    例:user.address.countryName

    方法調用:
    例:user.getName()

    對象的創建:
    new java.net.URL("http://localhost/")

    List表達式例:
    {"green", "red", "blue"}


    Map表達式例:
    #{"key1" : "value1", "key2" : "value2", "key3" : "value3"}
    對map引用,例:map.key1

    等等。

    OGNL官方首頁:
    http://www.ognl.org/

    OGNL官方文檔 (2.6.9)
    OGNL Language Guide (2.6.9)

    附:
    OGNL使用例:
    1. package com.test.ognl; ??
    2. import java.util.HashMap; ??
    3. import java.util.List; ??
    4. import java.util.Map; ??
    5. ??
    6. import junit.framework.TestCase; ??
    7. import ognl.Ognl; ??
    8. import ognl.OgnlContext; ??
    9. ??
    10. public class OgnlTest extends TestCase { ??
    11. ????public void testGetValue() throws Exception { ??
    12. ???????? OgnlContext context = new OgnlContext(); ??
    13. ???????? Book book = new Book("book1"); ??
    14. ???????? context.put("book", book); ??
    15. ??
    16. ????????final String expression = "book.name"; ??
    17. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    18. ???????? assertEquals("book1", Ognl.getValue(parseExpression, context)); ??
    19. ???????? ??
    20. ???????? book.setName("book2"); ??
    21. ???????? assertEquals("book2", Ognl.getValue(parseExpression, context)); ??
    22. ???? } ??
    23. ???? ??
    24. ????public void testSetValue() throws Exception { ??
    25. ???????? OgnlContext context = new OgnlContext(); ??
    26. ???????? Book book = new Book("book1"); ??
    27. ???????? context.put("book", book); ??
    28. ??
    29. ????????final String expression = "book.name"; ??
    30. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    31. ???????? Ognl.setValue(parseExpression, context, "book2"); ??
    32. ???????? assertEquals("book2", book.getName()); ??
    33. ???? } ??
    34. ???? ??
    35. ????public void testCallStaticMethod() throws Exception { ??
    36. ???????? OgnlContext context = new OgnlContext(); ??
    37. ??
    38. ????????final String expression = "@com.test.ognl.Book@test()"; ??
    39. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    40. ???????? assertEquals("Hello World", Ognl.getValue(parseExpression, context)); ??
    41. ???? } ??
    42. ???? ??
    43. ????public void testArray() throws Exception { ??
    44. ???????? OgnlContext context = new OgnlContext(); ??
    45. ??
    46. ????????final String expression = "new int[]{1, 2, 3}"; ??
    47. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    48. ????????int[] ret = (int[]) Ognl.getValue(parseExpression, context); ??
    49. ??
    50. ???????? assertEquals(1, ret[0]); ??
    51. ???????? assertEquals(2, ret[1]); ??
    52. ???????? assertEquals(3, ret[2]); ??
    53. ???? } ??
    54. ??
    55. ????public void testList() throws Exception { ??
    56. ???????? OgnlContext context = new OgnlContext(); ??
    57. ??
    58. ????????final String expression = "{1, 2, 3}"; ??
    59. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    60. ???????? List ret = (List) Ognl.getValue(parseExpression, context); ??
    61. ??
    62. ???????? assertEquals(new Integer(1), ret.get(0)); ??
    63. ???????? assertEquals(new Integer(2), ret.get(1)); ??
    64. ???????? assertEquals(new Integer(3), ret.get(2)); ??
    65. ???? } ??
    66. ???? ??
    67. ????public void testMap() throws Exception { ??
    68. ???????? OgnlContext context = new OgnlContext(); ??
    69. ??
    70. ????????final String expression = "#{\"name\" : \"book1\", \"price\" : 10.2}"; ??
    71. ???????? Object parseExpression = Ognl.parseExpression(expression); ??
    72. ???????? Map value = (Map) Ognl.getValue(parseExpression, context); ??
    73. ???????? assertEquals("book1", value.get("name")); ??
    74. ???????? assertEquals(new Integer(10.2), value.get("price")); ??
    75. ???? } ??
    76. } ??
    77. ??
    78. class Book { ??
    79. ????private int name; ??
    80. ??
    81. ????public Book(String bookName) { ??
    82. ????????this.name = bookName; ??
    83. ???? } ??
    84. ????public int getName() { ??
    85. ????????return name; ??
    86. ???? } ??
    87. ??
    88. ????public void setName(int Name) { ??
    89. ????????this.name = name; ??
    90. ???? } ??
    91. ??
    92. ????// test static method ??
    93. ????public static String hello() { ??
    94. ????????return "Hello World"; ??
    95. ???? }??

    posted on 2009-08-12 18:19 jadmin 閱讀(108) 評論(0)  編輯  收藏

    只有注冊用戶登錄后才能發表評論。


    網站導航:
     
    主站蜘蛛池模板: 四虎国产精品免费久久| 免费看一级毛片在线观看精品视频| 成人精品视频99在线观看免费| 国产精品极品美女免费观看| 亚洲日韩一区二区一无码| 免费看成人AA片无码视频羞羞网| 91亚洲精品麻豆| 91免费资源网站入口| 亚洲熟女乱色一区二区三区| 免费看www视频| 免费看又黄又爽又猛的视频软件| 亚洲高清偷拍一区二区三区| 一级毛片a女人刺激视频免费| 亚洲中文字幕久久精品无码喷水 | 最新精品亚洲成a人在线观看| 二区久久国产乱子伦免费精品| 亚洲美女又黄又爽在线观看| 男的把j放进女人下面视频免费| 亚洲AV无码一区二区二三区软件| 久久久国产精品无码免费专区| 亚洲人成在线影院| 免费看韩国黄a片在线观看| 亚洲国产高清国产拍精品| 亚洲偷自拍拍综合网| 久草免费福利资源站| 波多野结衣亚洲一级| 免费在线观看毛片| 一区二区三区在线免费看| 亚洲人成图片网站| 亚洲综合国产精品第一页| 久久精品一区二区免费看| 亚洲一区二区三区写真| 亚洲中文字幕无码一区二区三区 | 免费观看男人吊女人视频| 亚洲免费二区三区| 亚洲精品麻豆av| www视频免费看| 特级无码毛片免费视频| 亚洲美女视频一区二区三区| 日本无卡码免费一区二区三区| a级精品九九九大片免费看|