下面是在JSP上使用struts2和OGNL读取Action中数据的例子。 Cat:
package com.action.ognl;
public class Cat {
private String name;
private int age;
private String color;
public Cat(String name,int age,String color)
{
this.name=name;
this.age=age;
this.color=color;
}
public Cat()
{
}
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 String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
}
Person:
package com.action.ognl;
import java.util.Map;
public class Person {
private String name;
private int age;
private String address;
private String[] friends;
private Cat cat;
private Map map;
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 String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
public String[] getFriends() {
return friends;
}
public void setFriends(String[] friends) {
this.friends = friends;
}
public Cat getCat() {
return cat;
}
public void setCat(Cat cat) {
this.cat = cat;
}
public Map getMap() {
return map;
}
public void setMap(Map map) {
this.map = map;
}
public Person(String name, int age, String address, String[] friends,
Cat cat, Map map) {
super();
this.name = name;
this.age = age;
this.address = address;
this.friends = friends;
this.cat = cat;
this.map = map;
}
public Person() {
}
}
OgnlAction:
package com.action.ognl;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.RequestAware;
import org.apache.struts2.interceptor.SessionAware;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction extends ActionSupport implements RequestAware,SessionAware,ApplicationAware {
String username;
private String password;
private Map requestMap;
private Map sessionMap;
private Map applicationMap;
private List list;
public OgnlAction() {
list=new ArrayList();
}
public List getList() {
return list;
}
public void setList(List list) {
this.list = list;
}
@Override
public void setRequest(Map arg0) {
// TODO Auto-generated method stub
this.requestMap=arg0;
}
@Override
public void setApplication(Map arg0) {
// TODO Auto-generated method stub
this.applicationMap=arg0;
}
@Override
public void setSession(Map arg0) {
// TODO Auto-generated method stub
this.sessionMap=arg0;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
System.out.println("setUsername");
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
@Override
public String execute() throws Exception {
// TODO Auto-generated method stub
requestMap.put("hello", "world");
sessionMap.put("hello", "world");
applicationMap.put("hello", "world");
Cat cat1=new Cat("cat1",20,"red");
Cat cat2=new Cat("cat2",30,"black");
String[] friends1={"test1","test2","test3"};
String[] friends2={"welcom1","welcom2","welcom3"};
Map map1=new HashMap();
Map map2=new HashMap();
map1.put("test1", "test1");
map1.put("test2", "test2");
map2.put("hello1", "hello1");
map2.put("hello2", "hello2");
Person person1=new Person("zhangsan", 20, "beijing", friends1, cat1, map1);
Person person2=new Person("lisi", 40, "hangzou", friends2, cat2, map2);
System.out.println(person1);
list.add(person1);
list.add(person2);
return SUCCESS;
}
}
Ognl.jsp(OgnlAction的result定义转发)
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
Insert title here
取Action中的属性
username:
password:
取post,get参数:
username:
password:
取request,session,application属性
request:
session:
application:
取对象各种属性:
Person1.address:
Person2.age:
Person2.map:
过滤:
name:
address:
投影(取指定属性):