编写javaBean:
package
ch8;
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Student ... {
private String name;
private boolean man;
private Classroom classroom;
private List book;
private Map food;
private Set tools;
public List getBook() ...{
return book;
}
public void setBook(List book) ...{
this.book = book;
}
public Classroom getClassroom() ...{
return classroom;
}
public void setClassroom(Classroom classroom) ...{
this.classroom = classroom;
}
public Map getFood() ...{
return food;
}
public void setFood(Map food) ...{
this.food = food;
}
public boolean isMan() ...{
return man;
}
public void setMan(boolean man) ...{
this.man = man;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public Set getTools() ...{
return tools;
}
public void setTools(Set tools) ...{
this.tools = tools;
}
}
package ch8;
public class Classroom ... {
private int number;
private String classname;
public String getClassname() ...{
return classname;
}
public void setClassname(String classname) ...{
this.classname = classname;
}
public int getNumber() ...{
return number;
}
public void setNumber(int number) ...{
this.number = number;
}
}
import java.util.List;
import java.util.Map;
import java.util.Set;
public class Student ... {
private String name;
private boolean man;
private Classroom classroom;
private List book;
private Map food;
private Set tools;
public List getBook() ...{
return book;
}
public void setBook(List book) ...{
this.book = book;
}
public Classroom getClassroom() ...{
return classroom;
}
public void setClassroom(Classroom classroom) ...{
this.classroom = classroom;
}
public Map getFood() ...{
return food;
}
public void setFood(Map food) ...{
this.food = food;
}
public boolean isMan() ...{
return man;
}
public void setMan(boolean man) ...{
this.man = man;
}
public String getName() ...{
return name;
}
public void setName(String name) ...{
this.name = name;
}
public Set getTools() ...{
return tools;
}
public void setTools(Set tools) ...{
this.tools = tools;
}
}
package ch8;
public class Classroom ... {
private int number;
private String classname;
public String getClassname() ...{
return classname;
}
public void setClassname(String classname) ...{
this.classname = classname;
}
public int getNumber() ...{
return number;
}
public void setNumber(int number) ...{
this.number = number;
}
}
Action:
package
ch8;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.webwork.interceptor.ServletRequestAware;
import com.opensymphony.webwork.interceptor.SessionAware;
import com.opensymphony.xwork.ActionSupport;
public class TestOGNL extends ActionSupport implements SessionAware,ServletRequestAware ... {
private List members=new ArrayList();
private String type;
HttpServletRequest request=null;
Map session=null;
public void setSession(Map session) ...{
this.session=session;
//或者HttpServletRequest request=ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
}
public void setServletRequest(HttpServletRequest request) ...{
this.request=request;
}
public List getMembers() ...{
return members;
}
public void setMembers(List members) ...{
this.members = members;
}
public String getType() ...{
return type;
}
public void setType(String type) ...{
this.type = type;
}
public TestOGNL()...{
//构造测试数据
members.add(new Integer(1));
members.add(new Integer(2));
members.add(new Integer(3));
type="webwork";
}
public String execute() throws Exception ...{
// 构造测试数据
Classroom classroom=new Classroom();
classroom.setClassname("javeEE");
classroom.setNumber(22);
Student stu=new Student();
stu.setName("gaoxiang");
stu.setClassroom(classroom);
stu.setMan(true);
List books=new ArrayList();
books.add("j2se");
books.add("j2ee");
books.add("j2me");
stu.setBook(books);
Map foods=new HashMap();
foods.put("1", "apple");
foods.put("2", "orange");
stu.setFood(foods);
Set tools=new HashSet();
tools.add("bomb");
tools.add("rocket");
tools.add("wood");
stu.setTools(tools);
request.setAttribute("student", stu);
session.put("student", stu);
return SUCCESS;
}
}
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;
import javax.servlet.http.HttpServletRequest;
import com.opensymphony.webwork.interceptor.ServletRequestAware;
import com.opensymphony.webwork.interceptor.SessionAware;
import com.opensymphony.xwork.ActionSupport;
public class TestOGNL extends ActionSupport implements SessionAware,ServletRequestAware ... {
private List members=new ArrayList();
private String type;
HttpServletRequest request=null;
Map session=null;
public void setSession(Map session) ...{
this.session=session;
//或者HttpServletRequest request=ActionContext.getContext().get(ServletActionContext.HTTP_REQUEST);
}
public void setServletRequest(HttpServletRequest request) ...{
this.request=request;
}
public List getMembers() ...{
return members;
}
public void setMembers(List members) ...{
this.members = members;
}
public String getType() ...{
return type;
}
public void setType(String type) ...{
this.type = type;
}
public TestOGNL()...{
//构造测试数据
members.add(new Integer(1));
members.add(new Integer(2));
members.add(new Integer(3));
type="webwork";
}
public String execute() throws Exception ...{
// 构造测试数据
Classroom classroom=new Classroom();
classroom.setClassname("javeEE");
classroom.setNumber(22);
Student stu=new Student();
stu.setName("gaoxiang");
stu.setClassroom(classroom);
stu.setMan(true);
List books=new ArrayList();
books.add("j2se");
books.add("j2ee");
books.add("j2me");
stu.setBook(books);
Map foods=new HashMap();
foods.put("1", "apple");
foods.put("2", "orange");
stu.setFood(foods);
Set tools=new HashSet();
tools.add("bomb");
tools.add("rocket");
tools.add("wood");
stu.setTools(tools);
request.setAttribute("student", stu);
session.put("student", stu);
return SUCCESS;
}
}
xwork.xml
<
action
name
="testOGNL"
class
="ch8.TestOGNL"
>
< result name ="success" > /ch8/list-students.jsp </ result >
</ action >
< result name ="success" > /ch8/list-students.jsp </ result >
</ action >
JSP:
<%
...
@ page language="java" contentType="text/html; charset=GB18030"
pageEncoding="GB18030" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
<% ... @ taglib uri="webwork" prefix="ww" %>
< meta http-equiv ="Content-Type" content ="text/html; charset=GB18030" >
< title > Insert title here </ title >
</ head >
< body >
从Action中得到的数据 < br >
type: < ww:property value ="type" />< br >
members:
< ww:iterator value ="members" status ="status" >
< ww:property value ="members.get(#status.Index)" />
</ ww:iterator >
< br >
< br >
从request中得到的数据 < br >
Student name: < ww:property value ="#request.student.name" />< br >
Student is man: < ww:property value ="#request.student.man" />< br >
Student books:
< ww:iterator value ="#request.student.book" status ="status" >
< ww:property value ="#request.student.book.get(#status.Index)" />
</ ww:iterator >< Br >
Student food:
< ww:property value ="#request.student.food.get(" 1")" />
< ww:property value ="#request.student.food.get(" 2")" />< br >
Student classroom;
< ww:property value ="#request.student.classroom.classname" />
< ww:property value ="#request.student.classroom.number" />< br >
Student tools:
不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值
< ww:iterator value ="#request.student.tools.iterator" status ="status" >
< ww:property value ="#request.student.tools.iterator.next" />
</ ww:iterator >< Br >
< Br >
< br >
< br >
从session中得到的数据和从request中一致,只需要把相应的request换成session < br >
Student name: < ww:property value ="#session.student.name" />< br >
Student is man: < ww:property value ="#session.student.man" />< br >
Student books:
< ww:iterator value ="#session.student.book" status ="status" >
< ww:property value ="#session.student.book.get(#status.Index)" />
</ ww:iterator >< Br >
Student classroom;
< ww:property value ="#session.student.classroom.classname" />
< ww:property value ="#session.student.classroom.number" />< br >
Student food:
< ww:property value ="#session.student.food.get(" 1")" />
< ww:property value ="#session.student.food.get(" 2")" />< br >
Student tools:
不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值
< ww:iterator value ="#session.student.tools.iterator" status ="status" >
< ww:property value ="#session.student.tools.iterator.next" />
</ ww:iterator >< Br >
< Br >
< br >
< br >
</ body >
</ html >
pageEncoding="GB18030" %>
<! DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd" >
< html >
< head >
<% ... @ taglib uri="webwork" prefix="ww" %>
< meta http-equiv ="Content-Type" content ="text/html; charset=GB18030" >
< title > Insert title here </ title >
</ head >
< body >
从Action中得到的数据 < br >
type: < ww:property value ="type" />< br >
members:
< ww:iterator value ="members" status ="status" >
< ww:property value ="members.get(#status.Index)" />
</ ww:iterator >
< br >
< br >
从request中得到的数据 < br >
Student name: < ww:property value ="#request.student.name" />< br >
Student is man: < ww:property value ="#request.student.man" />< br >
Student books:
< ww:iterator value ="#request.student.book" status ="status" >
< ww:property value ="#request.student.book.get(#status.Index)" />
</ ww:iterator >< Br >
Student food:
< ww:property value ="#request.student.food.get(" 1")" />
< ww:property value ="#request.student.food.get(" 2")" />< br >
Student classroom;
< ww:property value ="#request.student.classroom.classname" />
< ww:property value ="#request.student.classroom.number" />< br >
Student tools:
不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值
< ww:iterator value ="#request.student.tools.iterator" status ="status" >
< ww:property value ="#request.student.tools.iterator.next" />
</ ww:iterator >< Br >
< Br >
< br >
< br >
从session中得到的数据和从request中一致,只需要把相应的request换成session < br >
Student name: < ww:property value ="#session.student.name" />< br >
Student is man: < ww:property value ="#session.student.man" />< br >
Student books:
< ww:iterator value ="#session.student.book" status ="status" >
< ww:property value ="#session.student.book.get(#status.Index)" />
</ ww:iterator >< Br >
Student classroom;
< ww:property value ="#session.student.classroom.classname" />
< ww:property value ="#session.student.classroom.number" />< br >
Student food:
< ww:property value ="#session.student.food.get(" 1")" />
< ww:property value ="#session.student.food.get(" 2")" />< br >
Student tools:
不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值
< ww:iterator value ="#session.student.tools.iterator" status ="status" >
< ww:property value ="#session.student.tools.iterator.next" />
</ ww:iterator >< Br >
< Br >
< br >
< br >
</ body >
</ html >
运行结果:
从Action中得到的数据
type:webwork
members: 1 2 3
从request中得到的数据
Student name:gaoxiang
Student is man:true
Student books: j2se j2ee j2me
Student food: apple orange
Student classroom; javeEE 22
Student tools: 不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值 wood wood wood
从session中得到的数据和从request中一致,只需要把相应的request换成session
Student name:gaoxiang
Student is man:true
Student books: j2se j2ee j2me
Student food: apple orange
Student tools: 不知道该如何去遍历set,我用下面的方式,总是输出set.size()个set中最后的数值 wood wood wood
注:还是没有找到怎样遍历set的方法,看来只能把set转换成list或者array去显示了,因为这两个都可以根据标识定位每一个元素,而set只能迭代称iterator进行迭代,不能定位