OGNL表达式

OGNL表达式是(Object-Graph Navigation Language)是对象图形化导航语言,struts2中默认使用OGNL表达式语言来显示数据。与serlvet中的el表达式的作用是一样的。

OGNL表达式标签中的值有三种:

1.只能是OGNL表达式。

2.字符串,需转义自OGNL表达式。

1)OGNL表达式转换为字符串显示,需要用 单引号('') 引起来

2)转为OGNL表达式的字符串,需要用 %{字符串} 来转换

3.只能是字符串。

一、数据标签
1.property -- 显示数据
default --默认值 只能是字符串,不能是OGNL
escape -- true/false 默认是true, 改为false则显示html效果标签
value -- 要显示的内容,OGNL表达式,如果用字符串,需要用单引号引起来

<s:property value="'<h1>HAHA<h1>'" escape="false" default="[默认值]"/>

2.set -- 设置一个新变量,赋值
var,name -- 新变量名
scope --范围 page/request/session/application
value --变量值,OGNL表达式,字符串要加单引号

<s:set var="list" value="newsList" scope="request"></s:set>
<s:property value="#request.list"/>

3.url -- 生成网址
var -- 变量名
value--要生成的URL地址,字符串需转义自OGNL,要手动写出完整的地址。
action -- 要生成的URL地址,字符串需转义自OGNL,生成出绝对路径

<s:url var="data" action="News_getAll"></s:url>
<s:property value="#data"/> 

4.bean -- JavaBean的实现类
name -- 要实例化的Java类

5.param -- 生成参数
name -- 标签名
value -- OGNL表达式,加单引号

<s:bean name="maya.model.News" var="news">
    <s:param name="title" value="'这是自定义的标题'"></s:param>
</s:bean>
<s:property value="#news.title"/>

6.date -- 格式化输出日期
name -- 要格式化的日期值 --- OGNL表达式
format --- 格式化显示的格式。

<s:date name="date" format="yyyy年MM月dd日" var="mydate"/>
<s:property value="mydate"/>

7.include -- 将jsp或servlet包含到页面中
value -- JSP或Servlet文件

8.debug

<s:debug></s:debug>

二、控制标签

1.if...else if ...else
test -- 表格式

2.iterator
var
value
status :even(偶数),odd(奇数),first,last,index,count
begin
end
step

<s:iterator var="news" value="newsList" status="st">
<s:if test="#st.even">
<div style="background-color:#666666;">
</s:if>

<s:else>
<div>
</s:else>
<s:property value="#st.index+1"/>.
<s:property value="#news.title"/>
</div>
</s:iterator>

3.append/merge/subset
id--新的对象名
<param> 子元素

<s:set value="{'aa','bb','cc'}" var="aa"></s:set>
<s:set value="{'11','22','33'}" var="bb"></s:set>
<s:append var="all">
    <s:param name="one" value="#aa"></s:param>
    <s:param name="two" value="#bb"></s:param>
</s:append>

<s:set value="{'aa','bb','cc'}" var="aa"></s:set>
<s:set value="{'11','22','33'}" var="bb"></s:set>
<s:merge var="all">
    <s:param name="one" value="#aa"></s:param>
    <s:param name="two" value="#bb"></s:param>
</s:merge>
<s:iterator value="#all"  var="t">
<s:property value="#t"/><br>
</s:iterator>

4.generater
seperator--分隔符
val--被分隔的字符串
var -- 分隔成的数组名
5.sorted
source --- 集合
comparator -- 对比器对象

<s:generator val="'a,b,c,d'" separator="," var="s"></s:generator>
<s:iterator value="#s" var="t">
<s:property value="#t"/><br>
</s:iterator>

三、表单标签
1.form
action --
method
2.textfield
name --
label -- 中文提示
3.password

4.checkboxlist radio
name -- name值
list -- value集合
label --内容集合
5.select
list --value集合
name --name值

headerkey --开头值
headervalue -开头内容
listkey --指定集合对象中的哪个属性作为选项的value
listvalue--指定集合对象中的哪个属性作为选项的内容
6.checkbox
fieldvalue-value值
name-name值

7.fielderror
fieldname -- 要验证的字段
8.a
9.submit
method-多表单提交

原文地址:https://www.cnblogs.com/jonsnow/p/6580409.html