`

Struts2些标签

 
阅读更多

ONGL表达式 % # $

1、  支持对象方法调用:obj.test();

2、  支持静态方法调用与静态值访问:“@类全名(包括包路)@方法或属性”

@java.lang.String@format(‘foo  %  s’, ‘bar’) @java.lang.Date@MOUNT

 

3、支持赋值与表达式串联

4、访问ActionContext上下文

5、操作集合对象

 

值栈:

         <s:iterator value="books" var="book">

         <s:property value=”name”/> 相当于:<s:property value=”book.name”/> 代表当前?

</s:iterator>

<s:property value=”name”/> 值栈取值可不用加#

 

循环时,book被推到了值栈顶端

 

-----------------------------------------------------------------------------------------------------------------------------

% # $

 

#符号

访问非根对象(值栈:根对象):  #相当于ActionContext.getContext();

 

 

ActionContext中有用的属性:

 

Parameters:

         包含当前HTTP请求参数Map

         #parameters.id[0]  相当于 request.getParameter(“id”);

 

Request:

         包含HttpServletRequest的属性(attribute)Map   

      #request.userName   request.getAttribute(“userName”);

 

Session:

      #session.userName   Session.getAttribute(“userName”);

 

Application

      #application.,username #application.getAttribute(“username”);

 

Attr:

      attr 用于按request > session > application顺序访问其属性(attribute),#attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止。用于过滤和投影(projecting)集合,如books.{?#this.price<100};构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}   

 

 

books.{?#this.price<100}: 过滤出books中所有price小于100book;

 

?:   取所有符合选择逻辑的元素

^:  取第一个

$:   取最后一个

 

 

%”符号 javascript中的 eval() 函数

 

可以将%{……}内的字符串 转换成 表达式;如 var jsonObj = eval ( jsonString );

 

Because:

struts2里不同的标签对ognl的表达式的理解是不一样的。如果当有的标签“读不懂”类似“#myMap['key1']”的语句时,就要用%{}来把这括进去,“翻译”一下

 

 

标签用例:

S:if

         <s:if  test=”%{#book.name != ’feifei’ && #book.price == 100}”></s:if>

         <s:if  test=’#book.price !=”” && #book.price != null’></s:if>

         <s:elseif  test=’#book.price !=”” && #book.price != null’></s:elseif>

         <s:else></s:else>

 

S:iterator

         Value:       集合 books

         Id:             集合里元素的id

         var:           元素 book

         Status:     s       #s.odd,  #s.count,  #s.index,  #s.first,  #s.last,  s.modules(int) 取模

        

         <s:iterator value=”books” var=”book” status=”s”></s:iterator>

        

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics