Struts2的OGNL

<%@ 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;
	}

}

猜你喜欢

转载自wlt2008-com.iteye.com/blog/1069721