- 浏览: 822054 次
- 性别:
- 来自: 深圳
文章分类
- 全部博客 (488)
- struts1 (4)
- spring (13)
- extjs (36)
- mysql (3)
- sqlserver (2)
- oracle (37)
- 杂谈 (11)
- 面试相关 (35)
- Java基础知识总结 (5)
- Java重要知识点 线程和io流知识点 (6)
- 服务器相关 (1)
- 生活 (1)
- jsp (7)
- servlet (2)
- junit (3)
- struts2 (9)
- 开发必备 (4)
- 使用开发工具总结的知识 (4)
- ibatis (12)
- ajax (2)
- dwr (2)
- jquery (1)
- 设计模式 (4)
- Lucene的学习 (5)
- 经验总结 (19)
- mysql全文搜索相关 (7)
- hibernate (33)
- Sphinx (1)
- log4j的总结 (1)
- 敏捷开发 (9)
- 持续集成 (15)
- UML使用总结 (1)
- Scrum (1)
- OO(面向对象编程) (1)
- struts1和struts2总结 (1)
- 数据库加密 (1)
- 多线程和Socket编程 (6)
- PowerDesigner (2)
- 权限相关 (1)
- ant应用总结 (4)
- 面试必知知识点总结 (6)
- io流与nio流总结 面试相关 (1)
- 敏捷管理工具的使用 (7)
- hsqldb相关 (1)
- svn源码相关 (2)
- debug调试技巧总结 (1)
- hibernate和ibatis对比相关 (6)
- eclipse mylyn 插件的使用总结 (2)
- fisheye使用总结 (2)
- java泛型总结 (1)
- ssh整合总结 (10)
- SpringSide的学习总结 (1)
- JPA学习总结 (2)
- RoR 总结 (2)
- 模型驱动 总结 (1)
- Oracle SQL优化技巧 (4)
- 数据库相关资料 (1)
- oracle练习相关 (4)
- PowerDesigner 使用总结 (2)
- Struts实现国际化相关 (2)
- 权限框架 Spring Security (1)
- freemarker使用总结 (1)
- jsp servlet总结相关 (3)
- Java NIO总结 (1)
- 自己学习必须 (3)
- 蝴蝶容器相关 (2)
- eclipse插件的使用 (1)
- myeclipse的使用 (1)
- flex相关 (1)
- javaeye重生后总结的知识点 (2)
- 公司学习总结 (3)
- JAXB 相关 (1)
- ECSide (1)
- EdoJs 企业ajax框架 (1)
- RSA加密算法 (1)
- jbpm相关 (1)
- JMF原理 (1)
- MyEclipse使用总结 (1)
- Funsion Charts 相关总结 (3)
- 常用知识2011 (2)
- Flex与Java整合 (1)
- IBM WebSphere相关 (1)
- jQuery使用技巧 (2)
- 2011年面试相关知识点总结 (2)
- sqlserver开发相关 (8)
- eclipse 打jar相关 (2)
- Oracle/Mysql/SqlServer比较 (1)
- WebService Axis1.4开发相关 (4)
- 进制数的转换 总结 (1)
- WebService Axis2.0开发相关 (0)
- iteye Struts2 Spring Hibernate整合相关 (3)
- iteye osgi资料相关总结 (1)
- iteye ifos相关相关 (1)
- iteye 国际化相关 (1)
- iteye Hibernate缓存机制 (4)
- iteye Struts2 总结 (1)
- iteye Struts标签总结 (0)
- iteye web配置文件大全 (6)
- iteye Efs 框架总结 (1)
- iteye sql优化 (2)
- iteye 大数据量高并发的数据库优化 (1)
- iteye 开发相关 (1)
- iteye s1sh 和 s2sh整合中的问题以及解决 (1)
- iteye s1sh整合实例 (1)
- iteye s2sh整合实例 (1)
- iteye 面试相关 基础篇 (1)
- iteye Android相关 (1)
- iteye 面试相关 Web篇 (1)
- iteye Sql Server相关 (0)
- iteye struts1与struts2比较 (1)
- iteye jquery 和Struts2 (0)
- iteye struts2与其他插件整合 (0)
- iteye jquery 开发相关 (1)
- iteye eclipse结合spket(Ext,Jquery)开发相关 (0)
- iteye myeclipse 使用技巧相关 (0)
- iteye Memcached 缓存系统相关 (0)
- iteye 常用软件相关 (0)
- iteye 最新技术预览 AjaxSwing (0)
- iteye struts上传下载相关 (0)
- iteye 新技术相关 (0)
- test (0)
- iteye 开发Java游戏相关 (0)
- iteye Java反编译 (0)
- iteye XML解析相关 (0)
- iteye 压缩ZIP相关 (0)
- iteye 面试相关 (0)
- iteye Android开发相关 (4)
- csdn (0)
- e-inoc (0)
- iteye http错误码对应说明 (0)
- iteye 面试扩展知识点 (0)
- iteye oracle面试相关 存储过程,触发器,游标等 (0)
- iteye english study (0)
- iteye starflow工作流引擎 (0)
- iteye IBM WebSphere Application Server Toolkit使用相关 (0)
- iteye spring3 (0)
- iteye mybatis (0)
- iteye js技巧总结 (0)
- iteye SEO优化相关 (2)
- iteye QUI网页界面集成框架 (1)
- iteye AjaxAnywhere (1)
- iteye Nutz相关 (1)
- iteye ibatis技巧 (0)
- iteye dwz (0)
- 128个ajax/javascript框架 (0)
- iteye 2012 Java Swing教程 (1)
- iteye 码头集装箱相关 (1)
- iteye swing (2)
- 兼职工作 (0)
- 2012 新总结的面试相关知识点 常用知识点 (1)
- 淘宝网店相关 (0)
- oracle 常用函数 2012新总结 (1)
- 我的时尚潮流屋 (0)
- 2012 年 面试新总结知识 (1)
- 技巧 (1)
- 2013总结 (1)
- 2015工作相关 (3)
- springmvc (5)
- EasyPR-Java (1)
- java (2)
- editplus 4.0 注册码 (1)
- android (1)
- oracle连接数据库相关 (1)
- 编程资料总结 (2)
- 20160808 (1)
- visio 2013 (1)
最新评论
-
drew926:
泛型的类型参数可以有多个?这是java哪个版本支持的?
java泛型总结 -
listenan:
赞!非常感谢。
Scrum总结 -
cwscwj:
写的很深刻,谢谢,看了一遍,过段时间打算再看一遍。
Scrum总结 -
hwedwin:
w
Struts 2中的OGNL\EL的使用总结 -
lanni2460:
不错 很好 支持……
sqlserver三个驱动包下载
精通struts2的ognl表达式
Struts2 中内置了OGNL表达式的支持,使得Struts2的具有比Struts1更为强大的数据访问的功能。本文主要讲解OGNL的使用方法,并不会去讲解一些原理性的东西,想要了解的朋友可以自己去查阅相关的资料 在OGNL的使用主要分以下部分来讲解: 1.使用OGNL访问对象(不同范围的取值) 2.OGNL的集合操作(OGNL元素符,以及过滤和投影功能) 3.OGNL访问静态成员(怎么访问静态成员) 4. lambda表达式,在OGNL中使用一些简单的函数以及OGNL总结(在总结之后会详解Struts2的标签的使用) 一、使用OGNL访问对象 1 读取struts2中的ValueStack中的值 struts2中引入了ValueStack的概念,在struts2中默认使用ValueStack作为OGNL的StackContext的根元素 OGNL在读取根元素的时候能够直接进行读取 假设action中有 private Cat cat; private Dog dog; 俩个对象,那么在jsp页面读取方法就是 <s:property value="cat.name"/> 读取Cat的name属性的值 <s:property value="dog.name"/> 读取Dog的name属性值 2 使用#读取parameters request session application 范围内的值() <s:property value="#request.id"/> 相当于 request.getAttribute("id") <s:property value="#parameters.id"/> 相当于 request.getParameter("id") <s:property value="#session.id"/> 相当于 session.getAttribute("id") <s:property value="#application.id"/> 相当于 application.getAttribute("id") <s:property value="#attr.id"/> 依次搜索PageContext HttpServletRequest HttpSession ServletContext 范围 ,查找属性,找到为止 二、OGNL的集合操作 1 创建一个集合 {e1,e2,e3} 直接创建一个List类型的集合 #{Key1:Value1,Key2:Value2} 构建一个Map类型的集合 使用: <s:set name="sex" value="#{'1':'男','2':'女'}"/> <s:property value="#sex[id]"/> 在ValueStack范围内找到id的值, 并用它作为key去查找对应的 value 并显示出来 2 OGNL元素符 对于集合,OGNL提供了两个元素符:in和not in,其中in判断某个元素是否在指定集合中;not in则用于 判断某个元素是否不在指定集合中。 判断一个对象是否在List内存在: <s:if test="'foo' in {'foo','bar'}"> muhahaha </s:if> <s:else> boo </s:else> <s:if test="'foo' not in {'foo','bar'}"> muhahaha </s:if> <s:else> boo </s:else> 3 过滤与投影集合 假设有一个books的List集合存在于ValueStack中,存放了多个Book类型的对象 我们可以通过这样进行过滤取值 <s:iterator value="books.{?#this.price>35}"> 这样只会取到价格大于35的书籍,很好的起到了过滤的 作用, ?取出所有符合逻辑的元素 ^ 取出符合逻辑的第一个元素 $ 取出符合逻辑的最后一个元素 三、OGNL访问静态成员 在实际的开发中像页面的参数传递是绝对拒绝使用硬编码的,最好的解决方式有2种:一种是写在国际化配置文件中;另外的一种就是建立一个类,专门维护静态成员,所有硬编码的地方都调用它就可以了。 struts2 中默认提供了一些访问静态成员的方式,但是默认是关闭的,所以应该在struts2的配置文件中先设置 <constant name="struts.ognl.allowStaticMethodAccess" value="true"/> 设置之后就可以用以下的表达式来访问静态成员了。 1 访问静态方法 <s:property value="@com.netsdar.song.manager.util.AppUtil@getName()"/> 2 访问静态常量 <s:property value="@com.netsdar.song.manager.util.AppUtil@Index_Title"/> 四、lambda表达式,在OGNL中使用一些简单的函数以及OGNL总结 1 lambda表达式 这个表达式,我其实也很少去用,这里给大家拿个例子讲解一下吧 <s:property value="#conv =:[#this==1?'男':#this==2?'女':''], #conv(1)" /> 这句的作用就是,value="#conv =: 定义一个函数 conv [#this==1?'男' 定义 conv(1)=男 #this==2?'女' 定义 conv(2)=女 当然这个只是一个简单的例子,这里支持复杂的函数运算。对于一些简单的逻辑更推荐使用struts2的标签来处理。复杂点的不做具体讲解,引用别人的一个例子 例如: Fibonacci: if n==0 return 0; elseif n==1 return 1; else return fib(n-2)+fib(n-1); fib(0) = 0 fib(1) = 1 fib(11) = 89 OGNL的Lambda表达式如何工作呢? Lambda表达式必须放在方括号内部,#this表示表达式的参数。例如: <s:property value="#fib =:[#this==0 ? 0 : #this==1 ? 1 : #fib(#this-2)+#fib(#this-1)], #fib(11)" /> #fib =:[#this==0 ? 0 : #this==1 ? 1 : #fib(#this-2)+#fib(#this-1)]定义了一个Lambda表达式, #fib(11) 调用了这个表达式。 2 总结 这里主要讲解一下使用注意事项 <s:url value="#foobar['foo1']"> 如果你这样使用标签 ,那么它绝对不会是你想要的,它会按照你的 输入原样的输出的 #foobar['foo1'] 正确的使用: <s:url value="%{#foobar['foo1']}"> %{} 用于对括号内用ognl求值 struts2的action,大家都习惯了生成get与set方法,其实新版的没有这俩个方法也能插值进去的,它采用了java的反射机制来实现,不过官方还是建议按照旧的方法用。
发表评论
-
Ext常用问题的总结
2010-10-30 10:48 1097scripts/ext/resources/css/ext ... -
扩展Ext中的组件
2010-10-30 10:45 993http://extjs.org.cn/node/89 ht ... -
EXT 的继承
2010-10-30 10:42 1107Ext提供了这样的一个实用函数 Ext.extend ... -
Mysql日期和时间函数大全
2010-10-29 17:48 965Mysql日期和时间函数大 ... -
Java字符集编码与转码
2010-10-29 17:32 1923Java字符集编码与转码 Java字符的c ... -
java字符操作及转码
2010-10-29 17:28 1568import java.util.*; import ... -
如何将一个字符串最快速的倒序输出
2010-10-29 17:26 2467import java.util.*; public ... -
生成随机数 不重复的随机抽取(完美版本)
2010-10-05 10:49 1687随机数相关: import java.io.FileInp ... -
java线程学习总结
2010-10-03 18:18 1154java线程学习总结 1.线程中一些基本术语和概念 1 ... -
Java线程总结
2010-10-03 18:16 870Java线程总结 首先要理解线程首先需要了解一些基 ... -
j2ee是什么?
2010-10-02 09:32 1384j2ee是什么? J2EE Java2平台企业版 ... -
Struts2.0的概述,总体总结
2010-09-30 15:09 1308Struts2.0的概述,总体总 ... -
关于Hibernate的工作原理总结
2010-09-30 08:49 1200关于Hibernate的工作原理 ... -
Jboss Weblogic Websphere 等服务器的区别
2010-09-29 18:27 1623Jboss Weblogic Websphere 等服务器的区 ... -
OGNL表达式语言介绍
2010-09-29 18:16 836OGNL表达式语言介绍 OGNL介绍 OGNL是Ob ... -
websphere,weblogic,tomcat区别
2010-09-29 18:10 1546websphere,weblogic,tomcat区别 ... -
事务的基本概念
2010-09-29 17:54 1054事务的基本概念 面试常问 1. 事务定义 事务( ... -
使用java 实现九九乘法表 面试常问
2010-09-29 17:36 1319使用java 实现九九乘法表 面试常问 public ... -
数据库连接池的工作机制 面试常问
2010-09-29 16:44 2002数据库连接池的工作机制 面试常问 当J2EE服务器 ... -
程序员应知——破窗与童子军军规
2010-09-17 17:25 909首先让我来解释一下这两个词,尽管看起来二者之间没有什么必然联系 ...
相关推荐
《精通Struts 2:Web 2.0开发实战》这本书是Java Web开发领域的一本经典教程,专注于Struts 2框架的应用与实践。Struts 2作为一款强大的MVC(Model-View-Controller)框架,是Java EE平台上的重要组成部分,它极大地...
- Struts2是Struts的下一代版本,引入了更多特性,如OGNL表达式语言、拦截器(Interceptor)机制,以及更丰富的插件体系。 9. **最佳实践**: - 分层架构:按照业务逻辑、数据访问和表示层进行分离,保持代码结构...
Struts2是一款强大的Java Web开发框架,由Apache软件基金会维护...在研究源代码时,注意观察Action、Interceptor、Result和配置文件的交互,以及如何通过OGNL表达式来绑定数据,这将有助于你更好地理解和应用Struts2。
Struts2内置了对OGNL的支持,可以方便地在JSP页面中使用OGNL表达式获取模型数据。 - **标签库**:Struts2提供了丰富的标签库,可以帮助开发者快速构建表单和页面元素,提高开发效率。 - **拦截器**:拦截器是Struts2...
4. **OGNL表达式**:用于在视图层和模型层之间传递数据,支持复杂的对象导航和运算。 5. **Struts2插件**:丰富的插件库,如Struts2-dojo-plugin用于Ajax交互,Struts2-json-plugin支持JSON数据交换等。 6. ** strut...
六、OGNL表达式语言 1. OGNL(Object-Graph Navigation Language):Struts2中的默认表示层语言,用于在Action与视图之间传递数据,实现动态绑定。 七、Tiles插件 1. Tiles:Struts2的Tiles插件提供了一种组件化...
6. **OGNL(Object-Graph Navigation Language)**:Struts2使用OGNL作为表达式语言,用于在Action和视图之间传递数据。OGNL可以方便地访问对象属性,甚至执行复杂的表达式。 7. **插件和自定义组件**:Struts2具有...
通过这个"Struts2入门到精通教程",你将能够从零开始学习如何创建一个简单的Struts2应用,逐步深入到使用拦截器、OGNL、Tiles和异常处理等高级特性,最终达到精通Struts2框架的目标。在学习过程中,不断实践和理解每...
值栈也支持OGNL表达式,使得在JSP中可以方便地访问Action属性、模型对象、甚至集合元素。 六、拦截器(Interceptor) 拦截器是Struts2的一大特色,它可以对Action执行前后的操作进行拦截和处理。常见的拦截器有: 1...
此外,Struts2是Struts的后续版本,引入了更多现代Web开发的特性,如拦截器、注解配置、OGNL表达式等,提高了开发效率和灵活性。但这里主要讨论的是基础的Struts架构。 总之,掌握Struts技术意味着你能够熟练地构建...
7. ** strut2-core库**:Struts 2是Struts的升级版,它引入了许多新特性,如拦截器、OGNL表达式语言等。尽管标题提及的是"精通Struts技术",但了解其后续版本Struts 2也是有益的。 8. **拦截器**:Struts 2中的拦截...
11. **Struts2的升级**:尽管Struts1已经非常成熟,但随着技术的发展,Struts2引入了更多新特性,如拦截器(Interceptors)、OGNL表达式语言等,使得Struts框架更加强大和灵活。 通过这个“精通struts技术.rar”...
除此之外,Struts2是Struts的后续版本,它引入了更多现代Web开发的最佳实践,如拦截器栈、OGNL表达式语言等。尽管本书可能主要关注Struts1,但理解这两个版本的异同对于全面掌握MVC框架至关重要。 总之,《精通...
9. **Struts 2的升级**:Struts 2是Struts的后续版本,它引入了更多现代的Web开发特性,如OGNL表达式语言,更强大的拦截器,以及对Spring和iBatis等其他框架的更好集成。 10. **性能优化**:通过对Struts配置的调整...
11. ** strut2升级**:Struts2是Struts的后续版本,它引入了更多新特性,如拦截器(Interceptor)、OGNL表达式语言等,使得开发更加灵活高效。 学习并掌握这些知识点,对于Java Web开发者来说至关重要,能够帮助...
12. **Struts2**:Struts的后续版本Struts2引入了更多现代Web开发特性,如OGNL表达式语言,更强大的拦截器,以及与Spring、Hibernate等更紧密的集成。 以上只是对Struts框架基础知识的简要介绍,实际的《精通struts...
9. ** strut2 框架**:虽然书名提到的是Struts,但Struts2是其后续版本,引入了更多新特性和改进,如OGNL表达式语言、拦截器栈等,使得Struts2在处理复杂业务逻辑时更为灵活。 10. **实战案例**:书中应包含多个...