平时Struts2开发,常见在标签中使用OGNL表达式,将自己整理的一些使用原则记录在这里
1. 根对象
采用堆栈方式存储
访问根对象直接
Acttion对象默认会当做根对象放在栈中,直接取action对象的属性
<s:property value="username"/>
2. 上下文对象
采用Map方式存储
访问上下文对象必须以 # 开头
#request
#session
#param
#attr
以上都为默认上下文对象
ActionContext.getContext().put(key, value) -- value被存放在 #request['key'] or #request.key 中
ActionContext.getContext().getSession().put(key, value) --value被存放在 #session['key'] or #session.key 中
<s: property value="#request.username"/>
3. 关于表单元素的value
使用<s:.../>表单,如无特殊情况,只要设置name属性即可,未来如果Action中对应此name的属性有值,则会在表单中自动显示
如果有特殊情况,需要自己管理表单value的显示值,可以使用 EL表达式 或 OGNL表达式(推荐)
推荐使用OGNL表达式 %{},OGNL表达式通常写在表单元素内部
%{} 内写OGNL表达式,可以直接访问Actioin内的属性或方法
例如
<s:hidden name="user.name" value="%{username}"/> -- 直接取Action中的username属性,并放置在Action中User属性的name属性上(有点绕)
EL表达式 ${} 通常写在表单元素外部
${username}
注意,如果EL表达式写在表单元素内部,会引发
According to TLD attribute directive in tag file, attribute value does not accept any expressions
好像通过开关能打开,但不推荐这么用
4. 关于逻辑判断表单中字符串比较的注意
<s:if test='str == "add"'></s:if>
说明:
在网上查到的,说ONGL中进行字符串比较时,目标字符串一定用双引号表达,否则可能会引发异常
为避免双引号冲突,标签本身属性表达可以用单引号
分享到:
相关推荐
### Struts2中OGNL表达式的使用与具体实例解析 #### 一、OGNL概述 OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取或设置一个对象图中的属性值。它广泛应用于Struts2框架中,用于简化...
struts2 中 OGNL表达式的使用struts2 中 OGNL表达式的使用
ONGL(Object-NGram Language)表达式是一种在Java Web开发框架Struts中广泛使用的模板语言,主要用于视图层的构建。它允许开发者在JSP页面中嵌入Java代码,实现动态内容渲染。StrutsInterface可能是指与Struts框架...
### Struts2中的OGNL表达式相关简介 #### OGNL概述 OGNL(Object-Graph Navigation Language,对象图导航语言)是Struts 2框架的默认表达式语言,它极大地增强了Struts 2的数据访问能力和代码简洁性。OGNL不仅能够...
这篇博客文章可能详细探讨了如何在Struts2中使用OGNL来传递和操作数据。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来访问和修改对象的属性,甚至可以处理复杂的对象结构。以下是一些关于...
这个压缩包包含了Struts2中的ONGL包源码,对于理解Struts2的工作原理和深入学习OGNL的使用非常有帮助。 OGNL是Object-Graph Navigation Language的缩写,它的主要功能是在对象图中导航并执行操作。在Struts2中,...
Java的Struts框架是SSH(Spring、Struts、Hibernate)三大Web开发框架之一,而ONGNL(Object-Graph Navigation Language)则是Struts2框架中核心的表达式语言,用于数据绑定和表达式求值。本篇文章将深入解析如何在...
很好的介绍ONGL的相关知识,一看就明白,对想学习struts2或ONGL的人来说是必需的
这个“struts2-OGNL表达式测试”可能是一个测试项目或代码示例,旨在演示如何在Struts2应用中使用OGNL表达式。 OGNL是Struts2的核心组件之一,它允许开发者通过简单的字符串表达式来获取或设置对象的属性。这使得视...
在Struts2中,OGNL(Object-Graph Navigation Language)是一种强大的表达式语言,用于获取和设置对象的属性。这篇博客将深入探讨OGNL表达式的理解和用法。 OGNL的全称是对象图导航语言,它的主要功能是在对象模型...
struts2 OGNL表达式使用 OGNL(Object-Graph Navigation Language)是对象图导航语言,允许开发者在Struts2应用程序中访问和操作对象及其属性。下面是OGNL表达式的使用方法: 访问基本属性 1. 访问值栈中action的...
在JSP页面中使用Struts2的OGNL标签,可以极大地提高开发效率和代码的可读性。例如,在提供的代码片段中,可以看到`<%@ taglib prefix="s" uri="/struts-tags"%>`引入了Struts2的标签库,这使得在JSP中可以方便地使用...
- Struts2提供了一些内置的状态变量,这些变量可以直接在OGNL表达式中使用。 - 示例代码: ```xml ()"/> ``` 6. **Lambda表达式** - Lambda表达式提供了一种简洁的方式来定义简单的函数或方法。 - 示例代码...
Struts2 是一个流行的Java Web框架,它广泛使用OGNL(Object-Graph Navigation Language)作为其默认的表达式语言。OGNL 提供了一种强大的方式来访问和操作Java对象的属性,使得在视图层的表示更加简洁和高效。本文...
- 在Struts2的Action类中,可以使用OGNL表达式来动态地处理请求参数,如`String name = (String)params.get("user.name");` - 在JSP页面上,使用OGNL标签显示和处理数据,如`管理员界面</s:if>`。 通过理解并熟练...
2. **Struts2动作和结果**:如何在配置文件中使用OGNL定义Action和结果。 3. **JSP标签库**:Struts2提供的JSP标签库,如`s:property`、`s:iterator`等,它们内部使用了OGNL。 4. **安全问题**:理解OGNL注入的风险...
在JSP中,你可以直接在OGNL表达式中使用这些运算符,以实现动态内容的显示。 除了基本的属性访问,OGNL还支持Map和集合的操作。对于Map,可以使用`map[key]`来获取或设置值;对于集合,可以使用索引来访问元素,如`...
EL表达式通常在JSF组件的属性中使用,以便动态地获取或设置值。例如,`#{bean.property}` 这样的表达式会查找名为`bean`的JavaBean对象,并尝试访问其`property`属性。 EL具有以下主要特性: 1. **简化的对象访问**...
文档将详细解析如何在JSP页面中使用Struts标签,如`<s:textfield>`用于创建输入字段,`<s:submit>`用于提交表单,`<s:actionerror>`显示错误消息,以及`<s:if>`和`s:else`进行条件判断等。通过学习这些标签,你可以...