User.java
package model;
public class User {
//1.测普通属性
private String id;
private String name;
//2.对象属性
private ClassRoom room=new ClassRoom();
//3.测普方法
public String hello(){
return "hello";
}
//4.静态属性
public static String type="cs11dn";
//5.静态方法
public static String sayHello(){
return "hello"+type;
}
public User() {
super();
// TODO Auto-generated constructor stub
}
public User(String id, String name, ClassRoom room) {
super();
this.id = id;
this.name = name;
this.room = room;
}
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public ClassRoom getRoom() {
return room;
}
public void setRoom(ClassRoom room) {
this.room = room;
}
}
ClassRoom.java
package model;
public class ClassRoom {
private int id=1;
private String name="csdn";
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
OgnlAction.java
package 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 model.User;
import com.opensymphony.xwork2.ActionSupport;
public class OgnlAction extends ActionSupport{
private User user1;
//6.测试List集合
List<User> lists1=new ArrayList<User>();
//7.测试set集合
Set<User> sets1=new HashSet<User>();
//8.测试Map集合
Map<String,User> maps=new HashMap<String,User>();
@Override
public String execute() throws Exception {
user1=new User();
user1.setId("001");
user1.setName("csdbbbbbbbbbbbbbn");
lists1.add(new User("001","张三", null));
lists1.add(new User("002","张", null));
lists1.add(new User("0014","三", null));
sets1.add(new User("001","2三", null));
sets1.add(new User("002","张1", null));
sets1.add(new User("0014","三1", null));
maps.put("001",new User("01","张2三", null));
maps.put("002",new User("02","张2", null));
maps.put("003",new User("014","三2", null));
return SUCCESS;
}
public User getUser1() {
return user1;
}
public void setUser1(User user1) {
this.user1 = user1;
}
public List<User> getLists1() {
return lists1;
}
public void setLists1(List<User> lists1) {
this.lists1 = lists1;
}
public Set<User> getSets1() {
return sets1;
}
public void setSets1(Set<User> sets1) {
this.sets1 = sets1;
}
public Map<String, User> getMaps() {
return maps;
}
public void setMaps(Map<String, User> maps) {
this.maps = maps;
}
}
Struts.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">
<struts>
<!-- 调用静态方法 -->
<constant name="struts.ognl.allowStaticMethodAccess" value="true"></constant>
<package name="login" extends="struts-default">
<action name="ognl" class="action.OgnlAction">
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
Index.jsp
<%@ 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>
1.普通属性
<s:property value="user1.name" /><br/>
2。对象属性
<s:property value="user1.room.name" /><br/>
3.普通方法
<s:property value="user1.hello()" /><br/>
4.静态属性
<s:property value="@model.User@type" /><br/>
5.静态方法
<s:property value="@model.User@sayHello()" /><br/>
6.list
<s:property value="lists1" /><br/>
<s:iterator value="lists1" var="user">
<s:property value="name" />
</s:iterator><br/>
取某一个
<s:property value="lists1[1].name" /><br/>
7.set
<s:property value="sets1" /><br/>
<s:iterator value="sets1" var="user">
<s:property value="name" />
</s:iterator><br/>
8.Map
<s:property value="maps"/><br/>
<s:iterator value="maps" var="user">
<s:property value="value.id" />
</s:iterator><br/>
</body>
</html>