`
caleb_520
  • 浏览: 250786 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

Struts2 OGNL表达式之二

阅读更多
Struts 2的OGNL用法

OGNL是通常要结合Struts 2的标志一起使用,如<s:property value=”xxx”>。大家经常遇到的问题是#、%和$这三个符号的使用。下面会分别举例子给大家介绍。

先举一个简单例子,让大家想熟悉OGNL中最简单的应用。首先创建一个OgnlAction.java文件和Person.java文件,其代码如下:

OgnlAction.java代码
package com.gxa.edu.struts2.action.ch7;

public class OgnlAction {
	private Person person;

	public Person getPerson() {
		return person;
	}

	public void setPerson(Person person) {
		this.person = person;
	}
	
	public String execute() {
		person = new Person();
		person.setUsername("张三");
		person.setPassword("123");
		return "success";
	}
}


Person.java代码:
package com.gxa.edu.struts2.action.ch7;

public class Person {
	private String username;
	private String password;
	
	public String getPassword() {
		return password;
	}
	public void setPassword(String password) {
		this.password = password;
	}
	public String getUsername() {
		return username;
	}
	public void setUsername(String username) {
		this.username = username;
	}
}


接着创建struts-ch7.xml文件,在struts-ch7.xml文件中添加如下代码:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE struts PUBLIC
    "-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
    "http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
	<package name="ch7" extends="struts-default" namespace="/ch7">
		<action name="ognlAction"
class="com.gxa.edu.struts2.action.ch7.OgnlAction">
			<result name="success">/ch7/ognl.jsp</result>
		</action>
	</package>
</struts>


最后,创建ognl.jsp文件,其代码如下:
<%@ page language="java" pageEncoding="gb2312"%>
<%@ taglib prefix = "s" uri="/struts-tags" %>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    
  <title>My JSP 'ognl.jsp' starting page</title>
  </head>
  
  <body>
    用户名:<s:property value="person.username"/>
    密码:<s:property value="person.password"/>
  </body>
</html>


测试效果如下图:



通过上面的代码和测试结果,可以看出如果要想在页面上显示用户名和密码,就只需利用ognl表达式和搭配Struts 2标签“<s:property.../>”就可以完成。而无需使用以前的JSP脚本来实现在页面上显示用户名和密码。

注意:请大家观察ognl.jsp文件的<s:property value="person.username"/>代码,其"person.username"就是一个简单的ognl表达式,它相当于代码person.getUsername()。同理,"person.password"它相当于代码person.getPassword()。

通过上面的代码和叙述,肯定有人还是会问到底Struts2 OGNL到底有什么作用?
值得注意的是,Struts2 OGNL主要是利用OGNL表达式进行求值。可以使用的场合大致如下:
(1)在JSP和其他表现层技术中,利用OGNL表达式和Struts 2标签库显示动态的数据。
(2)在与Struts 2有关的xml文件中可以使用OGNL表达式。例如:Struts 2的文件上传功能;struts.xml文件中的动态Action的配置等等。
(3)在Struts 2类型转换时候,通过利用OGNL表达式,将JSP页面上的数据提交给Action处理器。
(4)OGNL表达式与Struts 2标签库联用。
  • 大小: 21.1 KB
分享到:
评论
2 楼 caleb_520 2010-09-06  
yangzjnh 写道
哈,快点写下一章节啊

谢谢你的关注,前段时间工作上比较忙。现在有些时间空下来了,后面准备一下好好写一些文字给大家。

thanks!!!
1 楼 yangzjnh 2010-08-25  
哈,快点写下一章节啊

相关推荐

    Struts2 使用OGNL表达式

    以下是一些关于Struts2中OGNL表达式的关键知识点: 1. **基础语法**:OGNL表达式的格式通常为`object.property`或`object[index]`,用于访问对象的属性或数组/集合的元素。例如,`user.name`将获取名为`user`的对象...

    struts2 ognl表达式

    Struts2 OGNL表达式是Java Web开发中一个重要的概念,它是一种强大的对象图形导航语言(Object-Graph Navigation Language)。在Struts2框架中,OGNL被广泛用于视图层,作为数据绑定的主要手段,使得开发者能够方便...

    struts2 OGNL表达式

    Struts2 OGNL表达式是Java开发中一个重要的知识点,尤其在Web应用程序设计中扮演着核心角色。OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,它被Struts2框架广泛用于视图层与模型层之间的数据...

    struts2 中 OGNL表达式的使用

    struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用

    struts2 OGNL表达式使用

    struts2 OGNL表达式使用 OGNL(Object-Graph Navigation Language)是对象图导航语言,允许开发者在Struts2应用程序中访问和操作对象及其属性。下面是OGNL表达式的使用方法: 访问基本属性 1. 访问值栈中action的...

    struts2 OGNL 表达式及各种标签的使用

    - 在Struts2的Action类中,可以使用OGNL表达式来动态地处理请求参数,如`String name = (String)params.get("user.name");` - 在JSP页面上,使用OGNL标签显示和处理数据,如`管理员界面&lt;/s:if&gt;`。 通过理解并熟练...

    ognl表达式 ognl表达式

    在Struts2中,OGNL的核心组件之一是`ValueStack`,它充当了OGNL表达式的数据源。`ValueStack`是一个存储数据的栈结构,包含了所有的模型对象以及请求、会话和应用范围的数据。开发者可以通过EL表达式直接访问`...

    Struts2 如何使用OGNL表达式(三十八)

    本文将深入探讨如何在Struts2中有效地使用OGNL表达式。 首先,OGNL是Struts2的核心组成部分,它允许开发者在Action类和JSP页面之间灵活地传递和访问数据。在Action类中,你可以设置属性,然后在JSP页面上通过OGNL...

    struts2OGNL表达式ActionContext及valuesStack.pdf

    在Struts2中,OGNL表达式的使用大大提升了代码的可读性和维护性。 首先,`#`字符在OGNL中扮演着关键角色。它主要用于访问OGNL上下文和Action上下文。`#`前缀可以用来获取`ActionContext`,这包含了四个重要的域:...

    ognl表达式java使用案例详解(测试通过)

    Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势: 1、 支持对象方法调用,如xxx.doSomeSpecial(); 2、支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@...

    struts2-OGNL表达式测试

    这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...

    Struts2深入学习----OGNL表达式原理

    Struts2是一个流行的Java Web...通过深入学习OGNL表达式原理,开发者能够更好地利用Struts2框架,提高Web应用的开发效率和可维护性。对于那些希望在Struts2开发中更进一步的人来说,熟悉和掌握OGNL是必不可少的技能。

    Struts2的标签库及OGNL表达式语言

    本篇文章将详细探讨Struts2中的OGNL表达式语言以及标签库。 **OGNL(对象图导航语言)** OGNL是一种强大的表达式语言,它允许开发者通过简洁的语法来访问和操作对象的属性。在Struts2框架中,OGNL扮演着至关重要的...

    Struts2 OGNL表达式实例详解

    Struts2 OGNL表达式实例详解 Struts2 OGNL表达式实例详解主要介绍了Struts2 OGNL表达式实例详解,相关实例代码,需要的朋友可以参考。Object Graph Navigation Language(对象图导航语言),就是用点来访问成员变量...

    OGNL表达式

    - **#**:通常用于表示OGNL表达式,在Struts2中作为OGNL表达式的开头标记。 - **%**:用于指定JSP页面的编码格式,如`;charset=utf-8" pageEncoding="utf-8" %&gt;`。 - **$**:在JSP页面中表示EL表达式的开头,但在...

    struts2_OGNL表达式ActionContext及valuesStack

    本文将深入探讨Struts2中的OGNL表达式,ActionContext以及valuesStack。 首先,OGNL表达式是Struts2中不可或缺的一部分,它允许开发者以一种声明式的方式访问和修改对象的属性。比如,`myBean.getMyProperty()`这样...

    JS:ognl表达式

    - **框架集成**:许多 Java 框架,如 Struts2、Hibernate Validator 等,都集成了 OGNL 表达式用于数据绑定和验证。 - **模板引擎**:在模板引擎中使用 OGNL 表达式来动态渲染页面。 - **业务逻辑处理**:在复杂的...

    struts2中ognl表达式的理解和用法

    3. 结果类型配置:在Struts2的配置文件中,结果类型可以通过OGNL表达式动态决定,例如,`resultType="#attr.resultType"`。 4. JSP标签库:Struts2提供了丰富的JSP标签库,这些标签内部也大量使用了OGNL来获取和显示...

    精通struts2的ognl表达式

    ### 精通Struts2中的OGNL表达式 在深入探讨Struts2框架的核心功能时,理解并熟练掌握OGNL(Object-Graph Navigation Language)表达式的应用是至关重要的一步。OGNL是一种强大的表达式语言,它允许开发者通过简洁、...

    struts2 ognl的用法

    在Struts2中使用OGNL表达式主要涉及以下几种符号:“#”、“%”和“$”。 ##### 1. “#”符号的使用 - **访问Struts2上下文**: - `#`可用于访问当前的`ActionContext`,如`#ActionContext.getContext()`。 - ...

Global site tag (gtag.js) - Google Analytics