ognl表达式和struts2标签

值栈: 相当于一个栈,每个Action类的对象实例会拥有一个ValueStack对象,Struts 2接收到一个.action的请求后,会先建立Action类的对象实例,先将Action类的相应属性放到 ValueStack对象的顶层节点,所有的属性值都是默认的值,如String类型的属性值为 nullint类型的属性值为0等。然后Struts 2就会调用拦截器链中的拦截器,当调用完所有的拦截器后,最后会调用Action类的Action方法,在调用Action方法之前,会将 ValueStack对象顶层节点中的属性值赋给Action类中相应的属性.同理在返回结果时如果 Action中的属性改变,值栈中的相应属性也会改变.

 

Ognl:

 Struts2ActionContext设置为OGNL上下文,并将值栈作为OGNL的根对象放置到ActionContext,也就是说,ActionContext中的内容,通过ognl都可以访问,直接进入Ognl的使用:

Ognl获取值栈中的内容不用加#,获取值栈之外的内容要加#,

参考: Struts2中的OGNL详解http://www.cnblogs.com/xly1208/archive/2011/11/19/2255500.html

1.可以调用对象中的public修饰的属性或者getter方法,类似el表达式

  :obj.prop会先在查找obj中查找getProp()方法,找不到再找prop属性,如果还找不到就返回空字符串

2.调用对象中的方法直接使用obj.methdo(args): student.getName(); sudent.setName(“小红”);:方法返回void不显示

3.调用类中的静态属性和方法

使用@package.className@classProp或@package.className@staticMethod(args)

例如: @java.lang.Math@PI @util.DateUtil@formatDate(today,’yyyy-MM -dd’)

记住是在类的完整路径和方法名前加@类和方法之间没有” .”操作符如果写成@package.className.@staticProp就是错了

4.集合操作:

map.keymap[key]获取map中某key对应的value,  list[index]获取集合中下班为index的元素,set集合不能通过此方法获取第n个元素

{e1,e2,e3…}生成list对象  #{key1:value1,key2:value2,…}生成map对象

in表达式用来判断某个元素是否在指定的集合对象中

not in判断某个元素是否不在指定的集合对象中

?:获得所有符合逻辑的元素

^:获得符合逻辑的第一个元素。

$:获得符合逻辑的最后一个元素。

可参考http://book.51cto.com/art/200806/75772.htm

Java集合API中有一些常用的方法不符合JavaBeangettersetter的命名规范,因此不能像访问javaBean属性一样访问这些方法,OGNL提供了一些伪属性,使得可以像访问属性一样来调用这些方法列举如下:

ListSetMap: sizeisEmpty

List、Set: iterator

Map:keysvalues

Iterator:nexthasNext

Enumeration:nexthasNextnextElementhasMoreElements

可参:http://hi.baidu.com/sisovrcetggmqwr/item/9c96c9c08563731a515058db

5.支持构造方法 new pojo.Student(args)

6.可直接使用等号赋值

7.OGNL表达式在计算过程中会自动进行类型转换,不过要注意 %{‘hello’} %{hello}的区别

 

Struts2标签:

Struts2相当于webwork的升级版,所以原来webwork的标签也在struts2中可直接使用

直接下载WebWork 2.0 Tags查看api

也可以参考http://www.roseindia.net/struts/struts2/index.shtml中的http://www.roseindia.net/struts/struts2/struts-2-tags.shtml

控制标签:

* if  * elseIf * else * append * generator * iterator * merge * sort * subset

if标签属性:test属性返回true或者false用来控制if标签中的html是否显示,id表示把test表达式的值放到上下文中(不在值栈中)便于其他地方访问

if可以单独使用可以可以和elseif,else等配合使用。

append用来把多个迭代器变成一个迭代器,使用这个迭代器时会依次调用里面的每个迭代器,一个迭代器结束,开始下一个迭代器。

merge表也用来把多个迭代器变成一个迭代器,使用这个迭代器时,先依次把每个迭代器的第一个元素取出来,再依次把每个迭代器中的第二个元素取出来,... 直到每个迭代器都结束。

generator表示把字符串分割开对外提供一个迭代器便于遍历,val提供用于分割的字符串,separator表示用什么分割字符串,id表示把提供的迭代器放到上下文中供其他地方使用,converter表示转换器,转换器要求是org.apache.struts2.util.IteratorGenerator.Converter的实现类的对象,用来处理分割后的每个字符串,转换成我们需要的格式或对象

sort根据我们提供的迭代器中的内容进行排序,再对外提供一个迭代器

subset根据我们提供的过滤器,进行过滤迭代器,再对处理后的数据对外提供迭代器

iterator 迭代  里面的status是org.apache.struts2.views.jsp.IteratorStatus对象

•index: current iteration index, starts on 0 and increments in one on every iteration
•count: iterations so far, starts on 1. count is always index + 1
•first: true if index == 0
•even: true if (index + 1) % 2 == 0
•last: true if current iteration is the last iteration
•odd: true if (index + 1) % 2 == 1

各个控制标签的属性列表如下:

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 内容概要 《计算机试卷1》是一份综合性的计算机基础和应用测试卷,涵盖了计算机硬件、软件、操作系统、网络、多媒体技术等多个领域的知识点。试卷包括单选题和操作应用两大类,单选题部分测试学生对计算机基础知识的掌握,操作应用部分则评估学生对计算机应用软件的实际操作能力。 ### 适用人群 本试卷适用于: - 计算机专业或信息技术相关专业的学生,用于课程学习或考试复习。 - 准备计算机等级考试或职业资格认证的人士,作为实战演练材料。 - 对计算机操作有兴趣的自学者,用于提升个人计算机应用技能。 - 计算机基础教育工作者,作为教学资源或出题参考。 ### 使用场景及目标 1. **学习评估**:作为学校或教育机构对学生计算机基础知识和应用技能的评估工具。 2. **自学测试**:供个人自学者检验自己对计算机知识的掌握程度和操作熟练度。 3. **职业发展**:帮助职场人士通过实际操作练习,提升计算机应用能力,增强工作竞争力。 4. **教学资源**:教师可以用于课堂教学,作为教学内容的补充或学生的课后练习。 5. **竞赛准备**:适合准备计算机相关竞赛的学生,作为强化训练和技能检测的材料。 试卷的目标是通过系统性的题目设计,帮助学生全面复习和巩固计算机基础知识,同时通过实际操作题目,提高学生解决实际问题的能力。通过本试卷的学习与练习,学生将能够更加深入地理解计算机的工作原理,掌握常用软件的使用方法,为未来的学术或职业生涯打下坚实的基础。
### 内容概要 这份《计算机试卷1》包含多个部分,主要覆盖了计算机基础知识、操作系统应用、文字处理、电子表格、演示文稿制作、互联网应用以及计算机多媒体技术。试卷以单选题开始,涉及计算机历史、基本概念、硬件组成、软件系统、网络协议等。接着是操作应用部分,要求考生在给定的软件环境中完成一系列具体的计算机操作任务。 ### 适用人群 本试卷适用于计算机科学与技术、信息技术相关专业的学生,以及准备计算机水平考试或职业资格认证的人士。它适合那些希望检验和提升自己计算机操作能力的学习者,也适用于教育工作者作为教学评估工具。 ### 使用场景及目标 1. **学习评估**:作为教育机构的课程评估工具,帮助教师了解学生对计算机基础知识的掌握程度。 2. **自学检验**:供个人自学者检验自己的计算机操作技能和理论知识,为进一步学习提供方向。 3. **职业发展**:为职场人士提供计算机技能的自我提升途径,增强其在信息时代的竞争力。 4. **考试准备**:为准备计算机相关考试的考生提供实战演练的机会,加强考试自信。 5. **教学资源**:教师可以将其作为教学资源,设计课程和实验,提高教学效果。 试卷的目标是通过理论知识的测试和实践技能的操作,全面提升考生的计算机应用能力。考生应掌握从基础的计算机组成原理到复杂的数据处理、演示文稿制作、网络应用以及多媒体技术处理等多方面技能。通过本试卷的学习与练习,考生将能够更加熟练地使用计算机解决实际问题,为未来的学术或职业生涯打下坚实的基础。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值