Struts2学习笔记之OGNL表达式(五)

阅读更多

Struts2学习笔记之OGNL表达式(五)

 

什么是OGNL

          Object Graph Navigation Language ,是一门功能强大的表达式语言,类似于EL。

 

          它是一种功能强大的表达式语言,通过它简单一致的表达式语法,可以存取对象的任意属性,

 

   调用对象的方法,遍历整个对象的结构图,实现字段类型转化等功能。它使用相同的表达式去存取对象的属      性。

 

 

         OGNL是独立的开源组件

         Struts2对Ognl进行改造和封装,下面我们来简单的介绍下OGNL在Struts2中的使用

 

Struts2中如何使用OGNL表达式

 

1. OGNL访问基本属性

2. OGNL访问实体对象

3. OGNL访问数组/集合

4. OGNL访问Map

5. OGNL运算

6. OGNL调用对象方法

7. OGNL创建集合

8. OGNL创建Map

 

Action中准备数据:

 

package com.mscncn.struts.ch01.web;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import com.mscncn.struts.ch01.entity.User;

public class OGNLAction {
	/**
	 * 普通属性
	 */
	private String realName;
	private Integer age;
	/**
	 * 实体对象
	 */
	private User user;
	/**
	 * 数组
	 */
	private String[] langs;
	/**
	 * 集合
	 */
	private List cities;
	private Map dataMetas;
	public String ognl(){
		//普通属性
		realName="www.mscncn.com";
		age=20;
		//实体对象
		user=new User();
		user.setUserName("mscncn");
		user.setPassword("mscncn's password");
		//数组
		langs=new String[]{"java","php","c#","Object-c"};
		//集合
		cities=new ArrayList();
		cities.add("北京");
		cities.add("上海");
		cities.add("深圳");
		dataMetas=new HashMap();
		dataMetas.put("username", "scott");
		dataMetas.put("password","tigger");
		return "ok";
	}

	public String getRealName() {
		return realName;
	}

	public void setRealName(String realName) {
		this.realName = realName;
	}

	public User getUser() {
		return user;
	}

	public void setUser(User user) {
		this.user = user;
	}

	public Integer getAge() {
		return age;
	}

	public void setAge(Integer age) {
		this.age = age;
	}

	public String[] getLangs() {
		return langs;
	}

	public void setLangs(String[] langs) {
		this.langs = langs;
	}

	public List getCities() {
		return cities;
	}

	public void setCities(List cities) {
		this.cities = cities;
	}

	public Map getDataMetas() {
		return dataMetas;
	}

	public void setDataMetas(Map dataMetas) {
		this.dataMetas = dataMetas;
	}
}

 

 struts.xml 配置action:

 


	
		/ognl.jsp
	

 

ognl.jsp:

 

<%@ page language="java" contentType="text/html; charset=UTF-8"
    pageEncoding="UTF-8" isELIgnored="false"%>
 <%@taglib prefix="s" uri="/struts-tags" %>




Insert title here


		

Hello Struts2

========el表达式========

真实姓名:${realName }
年龄:${age}
账号:${user.userName }
密码:${user.password }

========ognl表达式========

1. 访问基本属性

姓名:

年龄:

2. 访问对象属性

用户名:

密码:

3. 访问数组/集合的值

语言:

所有语言:

城市:

所有城市:

4. 访问Map

元数据-用户名:

元数据-密码:

5. 运算

介绍自己:

10年后我的年龄:

6. 调用对象的方法

user.toString(): --

7. 创建集合

集合:

集合类型:

8. 创建Map

Map:

Map类型:

 

你可能感兴趣的:(strtus2,ognl,el)