struts2 Ognl用法(Ognl類的用法)

首選,熟悉Ognl類的用法

1.定義兩個JavaBean,User和Departments

package com.struts2.bean;

public class User {

 private String username;

 private int age;

 private Department depart=new Department();

 public String getUsername() {

  return username;

 }

 public void setUsername(String username) {

  this.username = username;

 }

 public int getAge() {

  return age;

 }

 public void setAge(int age) {

  this.age = age;

 }

 public Department getDepart() {

  return depart;

 }

 public void setDepart(Department depart) {

  this.depart = depart;

 }

}

package com.struts2.bean;

public class Department {

 private int departCode;

 private String departname;

 public int getDepartCode() {

  return departCode;

 }

 public void setDepartCode(int departCode) {

  this.departCode = departCode;

 }

 public String getDepartname() {

  return departname;

 }

 public void setDepartname(String departname) {

  this.departname = departname;

 }

 

}

2.用Ognl類訪問,賦值(需要ognl-2.6.11.jar)

package com.test.main;

import java.util.HashMap;

import java.util.Map;

import ognl.Ognl;

import ognl.OgnlException;

import com.struts2.bean.*;

public class TestMain {

 /**

  * @param args

  * @throws OgnlException 

  */

 public static void main(String[] args) throws OgnlException {

  // TODO Auto-generated method stub

  TestMain test=new TestMain();

  test.getValueByOgnl();

  test.setValueByOgnl();

 }

 

 private void getValueByOgnl() throws OgnlException

 {

  User user=new User();

  user.setUsername("張三");

  user.setAge(25);

  

  Map<String,String> map=new HashMap<String,String>();

  map.put("name""李四");

  

  //當指定根對象時,不能加#,否則獲取爲null

  System.out.println("姓名:"+Ognl.getValue(Ognl.parseExpression("username"), user)+

    " 年齡:"+Ognl.getValue(Ognl.parseExpression("Age"), user));

  

  //當指定上下文,並且表達式屬性不在根對象中時,必須指定#,否則產生NoSuchPropertyException異常

  System.out.println("Map's name:"+Ognl.getValue(Ognl.parseExpression("#name"), map,user));

    

  

  

  

 }

 

 private void setValueByOgnl() throws OgnlException

 {

  User user=new User();

  user.setUsername("張三");

  user.setAge(25);

  

  Ognl.setValue("depart.departname", user, "生產部");

  

  //當指定根對象後,

  System.out.println("姓名:"+Ognl.getValue(Ognl.parseExpression("username"), user)+

    " 年齡:"+Ognl.getValue(Ognl.parseExpression("Age"), user)+

    " 部門:"+Ognl.getValue(Ognl.parseExpression("depart.departname"), user));

  

  

  

  

 }

}

發佈了36 篇原創文章 · 獲贊 3 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章