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-多表单提交