<%@ 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;
}
}
分享到:
相关推荐
Struts2 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,它在Struts2框架中扮演着核心角色,用于数据绑定、控制流程以及动态方法调用。这篇博文可能详细介绍了Struts2框架中OGNL的使用、工作原理...
### Struts2中OGNL的使用详解 #### 一、OGNL简介 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性。它在Struts2框架中扮演着极其重要的角色,是Struts2实现...
在这个“Struts2 OGNL用法项目”中,我们将深入探讨OGNL(Object-Graph Navigation Language),它是Struts2中一个强大的表达式语言,用于在模型对象和视图之间进行数据绑定和表达式计算。 OGNL是Struts2的核心组件...
OGNL(Object-Graph Navigation Language)是Struts2中的核心表达式语言,用于在Action对象和视图之间传递数据。在这个主题中,我们将深入探讨Struts2 OGNL2.6.11的源码,了解其内部工作原理和关键功能。 首先,...
Struts2 OGNL表达式是Java开发中一个重要的知识点,尤其在Web应用程序设计中扮演着核心角色。OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,它被Struts2框架广泛用于视图层与模型层之间的数据...
Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...
struts2 OGNL表达式使用 OGNL(Object-Graph Navigation Language)是对象图导航语言,允许开发者在Struts2应用程序中访问和操作对象及其属性。下面是OGNL表达式的使用方法: 访问基本属性 1. 访问值栈中action的...
Struts2 OGNL语言学习笔记 OGNL(Object-Graph Navigation Language)是 Struts 2 中的一种表达式语言,主要用于简化 JSP 页面中的编码,使页面与后台代码分离。下面是 OGNL 语言的主要特点和用法: 1. 支持对象...
Struts2 OGNL---标签详解析 都有实例 适合初学者
其中,OGNL(Object-Graph Navigation Language)是Struts2中的核心表达语言,用于在视图层与模型层之间传递数据。在深入理解OGNL的源码之前,我们首先需要了解OGNL的基本概念和用法。 OGNL是一种强大的表达式语言...
这个"Struts2 OGNL示例(Maven项目)"提供了使用OGNL与Struts2集成的实例,帮助开发者更好地理解和应用这一强大的特性。 首先,让我们了解什么是OGNL。OGNL是一种强大的表达式语言,允许我们访问和修改对象图中的...
这个压缩包包含的是OGNL的2版本的源代码,这对于理解Struts2框架的工作原理以及OGNL语言的实现细节非常有帮助。 OGNL的主要功能是提供一种简洁的方式来获取和设置对象的属性,甚至可以处理复杂的对象图。例如,你...
关于struts2 OGNL 详细教程,对初学者有帮助
Struts2 OGNL(Object-Graph Navigation Language)表达式是一种强大的、动态的数据绑定和脚本语言,广泛应用于Struts2框架中。它允许开发者在视图层与模型层之间灵活地传递数据,增强了MVC架构中的灵活性。本文将...
8. **Struts2中的OGNL拦截器**:Struts2框架使用了一系列拦截器来增强OGNL的功能,例如ValueStack,它可以将Action上下文中的所有对象暴露给OGNL表达式。这使得在视图层直接访问Action的属性变得简单。 总的来说,...
Struts2 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,广泛应用于Apache Struts2框架中,用于在视图、控制器和模型之间进行数据的表达和操作。Struts2是Java Web开发中最流行的MVC框架之一,而...
### Struts2 OGNL 表单提交问题详解 #### 一、背景介绍 Struts2框架作为一款流行的企业级应用开发框架,在处理MVC架构方面有着独特的优势。其中,OGNL (Object-Graph Navigation Language) 作为一种强大的表达式...
struts2 ognl源文件 在ECLIPSE导入后可方面的利于开发