重要知识ognl+标签.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
Struts2是一个强大的MVC框架,它在处理Web应用程序时提供了丰富的功能。在这个框架中,OGNL(Object-Graph Navigation Language)是默认的表达式语言,因为它具备多种优势,使得开发者能够更便捷地操作对象和表达式。以下是关于OGNL和Struts2标签的详细解释: 1. **OGNL的基本概念**:OGNL是一种强大的表达式语言,允许开发者通过简洁的语法来访问和操作对象的属性。它可以执行方法调用、访问静态方法和常量、进行赋值和表达式串联以及操作集合。 2. **OGNL的优势**: - **对象方法调用**:可以直接通过OGNL表达式调用对象的方法,如`xxx.doSomeSpecial()`。 - **静态方法和值访问**:可以使用`@[类全名(包括包路径)]@[方法名 | 值名]`格式调用类的静态方法或获取静态值,例如`@java.lang.String@format('foo %s', 'bar')`。 - **赋值和表达式串联**:OGNL支持复合表达式,如`price=100, discount=0.8, calculatePrice()`,这将计算出打折后的价格。 - **访问上下文**:可以访问OGNL上下文和ActionContext,获取HTTP请求、session、application等范围内的数据。 - **操作集合**:可以方便地对集合进行操作,如筛选、投影和构造Map。 3. **在Struts2中的使用**:Struts2标签通常与OGNL结合使用,例如`<s:property value="xx" />`标签用于显示或设置值,这里的`xx`就是OGNL表达式。 4. **特殊符号的使用**: - **“#”符号**:主要用于访问上下文和集合操作。 - 访问上下文:`#parameters`、`#request`、`#session`、`#application`和`#attr`分别代表HTTP请求参数、HttpServletRequest属性、HttpSession属性和ServletContext属性。 - 过滤和投影集合:`books.{?#this.price<100}`会筛选出价格低于100的书籍。 - 构造Map:`#{'foo1':'bar1', 'foo2':'bar2'}`创建一个包含键值对的Map。 5. **配置OGNL**:为了安全起见,Struts2建议在`web.xml`中添加`ActionContextCleanUp`过滤器,以清理ActionContext,防止潜在的安全风险。 6. **其他表达式语言**:除了OGNL,Struts2还支持JSTL、Groovy和Velocity等表达式语言,它们各自有其特点和适用场景。 7. **示例**:在实际开发中,比如你有一个名为`books`的列表,你可以通过OGNL表达式筛选出价格低于100的书籍,并在页面上展示,如`<s:iterator value="books.{?#this.price<100}" var="book">#{book.title}</s:iterator>`,这将列出所有价格低于100的书籍的标题。 通过理解这些知识点,开发者可以更有效地利用Struts2框架和OGNL表达式语言,构建高效且易于维护的Web应用程序。
- 粉丝: 10
- 资源: 15万+
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助