转: struts 2专用表达式(10)上
package?ch8;import?java.util.Date;
//团队类
public?class?Team?{
????//?团队名称
????private?String?teamname;
????//?定义团队人员属性
????private?Person?person;
????//?团队人数
????private?int?personnum;
????//属性的getter和setter方法
????public?String?getTeamname()?{
????????return?teamname;
????}
????public?void?setTeamname(String?teamname)?{
????????this.teamname?=?teamname;
????}
????public?Person?getPerson()?{
????????return?person;
????}
????public?void?setPerson(Person?person)?{
????????this.person?=?person;
????}
????public?int?getPersonnum()?{
????????return?personnum;
????}
????public?void?setPersonnum(int?personnum)?{
????????this.personnum?=?personnum;
????}
}
//?定义人员类
class?Person?{
????//?姓名
????private?String?name;
????//?年龄
????private?int?age;
????//?人员出生日期
????private?Date?birthday;
????//属性的getter和setter方法
????public?String?getName()?{
????????return?name;
????}
????public??void?setName(String?name)?{
????????this.name?=?name;
????}
????public?int?getAge()?{
????????return?age;
????}
????public?void?setAge(int?age)?{
????????this.age?=?age;
????}
????public?Date?getBirthday()?{
????????return?birthday;
????}
????public?void?setBirthday(Date?birthday)?{
????????this.birthday?=?birthday;
????}
}
package?ch8;import?java.util.HashMap;
import?java.util.Map;
import?ognl.Ognl;
import?ognl.OgnlException;
public?class?TestOGNL?{
????????public?static?void?main(String[]?args)?{
????????//?定义一个Map对象
????????Map?m?=?new?HashMap();
????????//定义一个Team对象
????????Team?team1?=?new?Team();
????????team1.setTeamname("团队1");
????????//定义一个Person对象
????????Person?person1?=?new?Person();
????????person1.setName("pla1");
????????//添加team元素
????????team1.setPerson(person1);
????????//定义一个Team对象
????????Team?team2?=?new?Team();
????????team2.setTeamname("团队2");
????????//定义一个Person对象
????????Person?person2?=?new?Person();
????????person2.setName("pla2");
????????//添加team元素
????????team2.setPerson(person2);
????????
????????//添加Map元素
????????m.put("team1",?team1);
????????m.put("team2",?team2);
????????try?{
????????????System.out.println(Ognl.getValue("team1.teamname",?m));
????????????System.out.println(Ognl.getValue("team2.person.name",?m));
????????????System.out.println(Ognl.getValue("teamname",?team2));
????????????System.out.println(Ognl.getValue("person.name",?team2));
????????}?catch?(OgnlException?e)?{
????????}
????}
}
OGNL可以使用非常简单的表达式来访问多层嵌套属性,为开发者提供了一个有力的工具。
?