关于struts的ognl表达式

使用struts2标签必须先导入标签库,在JSP页面中使用如下代码来导入struts2标签库:
<%@taglib prefix=”s” uri=”/struts-tags”%>

OGNL表达式语言
OGNL是一个对象,属性的查询语言。在OGNL中有一个类型为Map的Context(称为上下文),在这个上下文中有一个根元素(root),对根元素的属性的访问可以直接使用属性名字,但是对于其他非根元素中的属性的访问必须加上特殊符号#。
OGNL context Map包括:
application,session,value stack(root),require,parameters,attr


在Struts2中上下文为ActionContext,根元素位Value Stack(值堆栈,值堆栈代表了一族对象而不是一个对象,其中Action类的实例也属于值堆栈的一个)。因为Action实例被放在Value Stack中,而Value Stack又是根元素(root)中的一个,所以对Action中的属性的访问可以不使用标记#,而对其他的访问都必须使用#标记。例如:#foo.blah,表示取得Context中名字为foo对象的blah属性。相当于执行foo.getBlah()方法。
parameters对象,用于访问http请求参数,例如#parameters[‘foo’]或#parameters.foo用于范围调用HttpservletRequest的getParameter(“foo”)方法的返回值。
request对象,用于访问httpServletRequest属性。例如:#request[‘foo’]或#request.foo,用于返回调用HttpServletRequest的getAttribute(“foo”)方法的返回值。
session对象,用于访问HttpSession的属性。例如:#session[‘foo’]或#session.foo
application对象,用于访问ServletContext的属性。例如:#application[‘foo’]或#application.foo
attr对象,用于按request > session > application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止。


6、迭代标签
语法:

三种给,标签传值的方式

<s:iterator value="#request.userList">  
    <tr align="center">           
      <td><s:property value="id"/> : <s:property value="username"/></td>  
      <td><s:property value="age"/></td>  
      <td><s:property value="sex"/></td>  
      <td><s:property value="address"/></td>  
      <td>  
        <s:a href="userAction!addUser.action">添加</s:a> |   
          //第一种方式,在标签内使用标签时用%  
            <s:a href="userAction!loadUser.action?user.id=%{id}">编辑</s:a> |         
           //第二种方式:使用<s:url>标签解决    
        <s:url id="idUrl" action="userAction!delUser.action">  
           <s:param name="user.id" value="%{id}"></s:param>  
        </s:url>   
        <s:a href="%{idUrl}">删除</s:a>  
               //第三种:直接加入  
        <a href="<s:url action="userAction!delUser.action">  
                    <s:param name="user.id" value="id"/>  
                 </s:url>">删除2  
              </a>          
      </td>  
    </tr>  
 </s:iterator>    

时间格式化

<s:date name="info.createTime" format="yyyy-MM-dd HH:mm"/>
上一篇:Springmvc-跨域请求-后端设置)


下一篇:S2-059复现