2010年4月16日(新公司入职,第二周星期五)

1、struts标签使用:iterator标签遍历?

答:<1>s:iterator 标签有3个属性:
value  :被迭代的集合
id        :指定集合里面的元素的
status:迭代元素的索引

es:

一、list中装对象:其中obj_name为obj对象属性

<s:iterator value="aList" id="obj" status="stas">
    <s:property value="obj_name" /><s:if test="!#stas.isLast()">|</s:if>
</s:iterator>

二、list中直接装值:

<s:iterator value="aList" id="obj" status="stas">
    <s:property value="obj" /><s:if test="!#stas.isLast()">|</s:if>
</s:iterator>

      <2>索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数

2、Struts 2中的4种表达式语言,OGNL表达式用法?

Struts 2支持以下几种表达式语言:

1.      OGNLObject-Graph Navigation Language),可以方便地操作对象属性的开源表达式语言;

2.      JSTLJSP Standard Tag Library),JSP 2.0集成的标准的表达式语言;

3.      Groovy,基于Java平台的动态语言,它具有时下比较流行的动态语言(如PythonRubySmarttalk等)的一些起特性;

4.      Velocity,严格来说不是表达式语言,它是一种基于Java的模板匹配引擎,具说其性能要比JSP好。

Struts 2默认的表达式语言是OGNL,原因是它相对其它表达式语言具有下面几大优势:

1.      支持对象方法调用,如xxx.doSomeSpecial()

2.      支持类静态的方法调用和值访问,表达式的格式为@[类全名(包括包路径)]@[方法名 |  值名],例如:@java.lang.String@format('foo %s', 'bar')@tutorial.MyConstant@APP_NAME

3.      支持赋值操作和表达式串联,如price=100, discount=0.8, calculatePrice(),这个表达式会返回80

4.      访问OGNL上下文(OGNL context)和ActionContext

5.      操作集合对象。

 OGNL的#%$这三个符号的使用:

“#”主要有三种用途:

1.      访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:

 名称

作用

例子

parameters

包含当前HTTP请求参数的Map

#parameters.id[0]作用相当于request.getParameter("id")

request

包含当前HttpServletRequest的属性(attribute)Map

#request.userName相当于request.getAttribute("userName")

session

包含当前HttpSession的属性(attribute)的Map

#session.userName相当于session.getAttribute("userName")

application

包含当前应用的ServletContext的属性(attribute)的Map

#application.userName相当于application.getAttribute("userName")

attr

用于按request > session > application顺序访问其属性(attribute

#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止

2.      用于过滤和投影(projecting)集合,如books.{?#this.price<100}

3.      构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值