SSH框架中的几大表达式的比较

OGNL表达式和EL表达式、JSTL表达式的比较

OGNL表达式

OGNL一般结合struts2一起使用,在使用的JSP页面需要引入tablib <%@ taglib uri="/struts-tags" prefix="s"%>

OGNL表达式:

1.property标签:用于输出值,当访问session和application等域的时候#标记是不可少的

<s:property value="#session.user.name"/> 表示输出session域中的user对象的name属性,

<s:property value="#session.name"/>表示获取session里面的那么属性,

 <s:property value="#application.user.name"/>表示获取application域中的user对象的name属性,

ActionContext.getContext().getSession().put("user", p);//后台struts2的数据存入。

2.set标签:<s:set name="list" value="{'a','b','c','d'}"></s:set> 给一个list对象设置值。

3.iterator标签:迭代标签,多用于解析list,map等集合对象

list

<table>
<s:iterator var="n" value="#session.list" status="tag"> //迭代 var表示的是list中的一个个对象,s标签自动循环下一个对象,status指的是当前循环次数(从1开始)
<s:if test="#tag.odd">  //if-else标签 判断奇偶
<tr bgcolor="red">
<td>
<s:property value="#n" />
</td>
</tr>
</s:if>
<s:else>
<tr>
<td>
<s:property value="#n" />
</td>
</tr>
</s:else>
</s:iterator>
</table>

map

<s:iterator value="#session.map">
<s:property value="key"/> : <s:property value="value"/>
</s:iterator>

4.url 标签

<s:url action="test" namespace="/" var="testMethod"></s:url> //url标签是声明一个url链接到域中对象,然后通过a标签的href获取这个对象,所以下面两个a标签的作用是一样的,都是跳转至根空间下的test action的testMethod方法里。
<s:a href="test">11111</s:a>
<s:a href="%{testMethod}">11111</s:a>

5.form 表单

<s:form action="test" method="testMethod">
<s:textfield name="name" label="姓名"/>
<s:password name="name" label="密码"/>
<s:select list="#session.map" listKey="key" listValue="value" label="下拉框">//下拉框,后台可以用map传递到前台
</s:select>
<s:checkbox label=" 爱好" fieldValue="true" name="like"></s:checkbox>
<s:checkboxlist list="#session.map" listKey="key" listValue="value" name="like" value="{'one'}"></s:checkboxlist>  //checkbox组,后台可以用map传递到前台,value中放入list则表示初始化勾选中的项
</s:form>

效果图如下:

EL表达式,语法:${表达式}

算数表达式,在EL表达式中,加号只能做加减运算,不能用于字符串加减,表达式内可以用与或运算等逻辑运算

三元运算:? : 例如:${3>2?'是':'不是' ${empty sessionScope.user.name }空判断

pageScope 例如:${pageScope.user.userName} 相当于<%=page.getAttribute("user").getUserName%>
requestScope 例如:${requestScope.books} 相当于<%=request.getAttribute("books")%>
sessionScope 例如:${sessionScope.lastURL} 相当于<%=session.getAttribute("lastURL")%>
applicationScope 例如:${applicationScope.provice} 相当于<%=application.getAttribute("provice")%>
${sessionScope.user.sex}等于${sessionScope.user["sex"]}
 

JSTL表达式

posted on 2015-03-12 16:57  兰西之空  阅读(195)  评论(0)    收藏  举报

导航