<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%> <%@ taglib uri="/struts-tags" prefix="s" %> <% String path = request.getContextPath(); String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/"; %> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <base href="<%=basePath%>"> <title>My JSP 'index.jsp' starting page</title> <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> <meta http-equiv="keywords" content="keyword1,keyword2,keyword3"> <meta http-equiv="description" content="This is my page"> <!-- <link rel="stylesheet" type="text/css" href="styles.css"> --> </head> <body> name: ${name } <ol> <li>property标签取出值栈内的name值:<s:property value="name"/> </li> <li>访问值栈中acton中的普通方法 <s:property value="fun()"/> </li> <hr> <li>访问值栈中acton中的静态属性,staticStr: <s:property value="@com.wepull.action.OgnlAction@staticStr"/> </li> <li>访问值栈中acton中的静态方法,staticMethod: <s:property value="@com.wepull.action.OgnlAction@staticMethod()"/> </li> <li>访问math中的静态方法,max(): <s:property value="@@max(5,2)"/> </li> <hr> <li>访问值栈中对象<s:property value="user"/> </li> <li>访问值栈中对象的普通属性(会调用属性的get set方法)<s:property value="user.pass"/> </li> <li>访问值栈中对象的普通方法:<s:property value="user.say()"/> </li> <li>访问值栈中对象的普通方法2:<s:property value="user.name.length()"/> </li> <hr> <li>对象导航。访问user类中的dog:<s:property value="user.dog"/> </li> <li>访问user类中的dog名字:<s:property value="user.dog.name"/> </li> <hr> 下面是对集合的访问 <li>访问list:<s:property value="list"/> </li> <li>访问list中第一个元素:<s:property value="list[0]"/> </li> <li>list大小:<s:property value="list.size()"/> </li> <hr> set <li>访问set:<s:property value="set"/> </li> <li>set大小:<s:property value="set.size()"/> </li> <hr> map <li>访问map:<s:property value="map"/> </li> <li>访问map中的key:<s:property value="map.keys"/> </li> <li>访问map中的value:<s:property value="map.values"/> </li> <li>访问map中的某个元素<s:property value="map.keys=3"/> </li> <li>map大小:<s:property value="map.size()"/> </li> <hr> userList <li>访问userList<s:property value="userList"/> </li> <li>访问userList中user的名字<s:property value="userList.{name}"/> </li> <li>访问userList中第一个user的名字<s:property value="userList.{name}[0]"/> </li> <hr> </ol> <s:debug></s:debug> </body> </html>
package com.wepull.action; import java.util.ArrayList; import java.util.HashMap; import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Set; import com.opensymphony.xwork2.ActionSupport; import com.sun.org.apache.commons.beanutils.BeanUtils; import com.wepull.model.User; public class OgnlAction extends ActionSupport { public String name; public static String staticStr="静态属性"; private User user; public List<String> list = new ArrayList<String>(); public Set<String> set = new HashSet<String>(); public Map<Integer,String> map = new HashMap<Integer,String>(); public List<User> userList = new ArrayList<User>(); @Override public String execute() throws Exception { for (int i = 0; i < 5; i++) { list.add("list"+i); set.add("set"+i); map.put(i, "map"+i); User u = new User(); u.setName("user"+i); u.setPass(i); userList.add(u); } return SUCCESS; } public String fun(){ System.out.println("执行了 fun()"); return SUCCESS; } public static String staticMethod(){ System.out.println("执行了staticMethod()"); return "这是静态方法返回值"; } public String getName() { return name; } public void setName(String name) { this.name = name; } public User getUser() { return user; } public void setUser(User user) { this.user = user; } }