struts2简单入门-OGNL表达式
- 什么是OGNL表达式
- Object-Graph Navigation Language的缩写。
- 可以遍历整个对象结构图,实现对象类型转换等功能的表达式。
- OGNL实际上是个Map集合,有一个上下文根对象。
- ActionContext作为OGNL上下文,并把ValueStack作为根对象。
- ValueStack
- 可以执行,增加,删除,查询。
- struts2会把Action放到栈顶。
- OGNL中的几个家伙
- #
- 访问非根对象属性
-
#session.msg 相当于 ActionContext.getContext().getSession().getAttribute("msg");
- %
- 字符串类型时,计算OGNL表达式
- $
- 在国际化资源文件中,引用OGNL表达式
- 在Struts 2框架的配置文件中引用OGNL表达式
- @
- 访问静态方法
- 常用标签
- 流程控制标签
-
1 <s:if test="{}"></s:if>//if表达式 2 <s:if test="{}"></s:if><s:else></s:else>//if else 表达式 3 <s:ifelse test="{}"></s:ifelse>//Ifelse 表达式 4 //test 字符串 要加%{} 5 6 判断集合元素的符号 in,not in 7 //in 判断集合是否在当前集合内,not in 判断集合是否不在当前集合内. 8 9 OGNL过滤表达式 10 ?://获取所有符合的元素 11 ^://获取第一个符合的元素 12 $://获取最后一个符合的元素 13 14 <s:iterator value=""></s:iterator> 15 //对一个集合进行迭代 16 //id 集合内元素的ID 17 //status 指定迭代对象名称 18 <s:iterator value="books.{?#this.price > 35}"> 19 //?#this.price > 35 this 指取当前集合内的属性值符合条件的元素。 20 <s:property value="title" /> - $<s:property value="price" /> 21 </s:iterator>
- 通用标签
-
1 <s:property value=""> 2 //default 获取属性值. 3 //scope 指定命名空间. 4 //value 属性名 5 //id 元素标识 6 7 <s:set scope="" name="" value=""> 8 //设置属性值 value 如果是字符串需要加'',否则会当成变量. 9 //scope 可以是application、session、request、 page或action. 10 11 <s:action id="" name="" namespace="" executeResult="false|true" ignoreContextParams="false|true"/> 12 //action 引用名称 namespace 命名空间 executeResult 是否返回视图 ignoreContextParams 是否传递参数 13 14 <s:bean id="" name=""> 15 // id 引用名称 带id 标签结束不会移除对象 name 实现类全路径 16 <s:param name="" value=""/> 17 //name 参数名称 value 参数值 18 </s:bean> 19 20 <s:date format="" nice="" name="" id=""/> 21 //format 日期输出格式 nice 输出时间差 name 时间值 id 引用名称
- 调试标签
-
1 <s:debug/> 2 //输出所有的信息valuestack context 3 4 <s:fielderror/> 5 //控制端 调用addFieldErrors(,) 6 7 <s:actionerror/> 8 //获取Action错误消息 需要在控制端调用addActionError 方法 9 10 <s:actionmessage/> 11 //获取Action消息 需要在控制端调用addActionMessage方法
- 表单标签
- #