struts2 3-tags

来源:互联网 发布:濒死状态知乎 编辑:程序博客网 时间:2024/05/18 02:13

原文链接:http://blog.csdn.net/qimiguang/article/details/7935119

首先访问index.jsp

struts2.xml

TagsAction

 

tags.jsp

在浏览器中的显示结果为:

1s:propertyvalue的属性是object类型(凡是object类型的),都会把里面的字符串解析为ognl表达式,所以就会从value stack中取value对应的值了

如果不想把value的值解析为ognl表达式,只想字符串表示一个普通的字符串,则再加个' '

2、s:property中当value值通过ognl解析后在value stack中取不到,但也想让它显示东西时,设一个默认值,default="**",取不到用默认值,取得到就用取到的值

3、s:propertyescape默认为true,即譬如value=" '<hr/>' "时,显示<hr/>,如果设置escape="false",即不让strutshtml标签转换为普通字符串,仍然将<hr/>理解为html标签,即显示一条线

s:propertyvaluevalue stack中的Property Name,在页面显示的为根据Property Name从value stack中取出的Property Value

1、set标签中的varstack context中的keyvalueobject类型,自动解析为ognl表达式)为stack context中的value。   (var--value

2、当struts2.1中不设定scope时,Set设定的var-value默认在stack contextstack context.request(此时requeststack contextkeyvar-valuestack contextvalue)中各放入一个。(scope5个范围:applicationsessionrequestpageaction(即stack context+request))

3、当struts2.1中设定了scope时,那么设定的var-value只存放在指定的scope对应的value中。

4、<s:bean>new一个对象,设定var才能在stack context中找到,里面的<s:param>标签表示new对象时,传给构造方法的实参(注意)<s:param>里面的valueognl表达式,要想让它表示普通字符串,则再加个' '

5、<s:bean>如果不设定var,那么必须在<s:bean></s:bean>里面才能访问的到,因为<s:bean></s:bean>一旦执行结束就从value stack中删掉。如果想在<s:bean></s:bean>执行完后还能访问的到,那么需要指定var,这样就将bean放到stack context中。

6、struts2.1 <s:include>在处理中文上有bug,建议不要用

7、<s:include value="">这里valueString类型,不是object(不会自动解析为ognl表达式),而value="%{}"表示强制将这个String当做ognl表达式处理(在所有情况下都加%{}表示如果原来里面的内容就是ognl的话,将%{}忽略,如果不是,则强制解析为ognl)。

8<s:if><s:elseif><s:else>:

9、 <s:iterator> ognl表达式{}代表一个集合,<s:property/>会自动取出集合内容。

  var指在循环时取出当前值,把该值放入var中,var是放在stack context中的,访问时<s:property value="#x.toUpperCase()"/>

Status:一看例子就懂了

10、iterator中定义Map时,必须前面加#iterator可以遍历:collectionmapenumerationarray、以及实现了iterator的任何接口。

11、subset

从一个集合的第三个元素开始,截取13个元素作为一个子Set集合

12、struts2UI标签用的不多


0 0
原创粉丝点击