锁定老帖子 主题:struts2 Tags 堆栈分析
精华帖 (0) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2010-05-20
最后修改:2010-05-20
1. property: <s:property value="username"/>
5. set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /> set 从request取值: <s:property value="#request.adminName" /> set 设定范围: <s:set var="adminPassword" value="password" scope="session"/> set 从相应范围取值: <s:property value="#session.adminPassword"/> 说明:set 在以前的版本中有name id,但是在2.1版本开始不推荐使用,用var代替.实际var表示把变量压入栈actioncontext. 官方这样说明var的:Name used to reference the value pushed into the Value Stack; 这样我们可以用#key来访问.
6. bean标签 <s:bean name="com.awf.tags.Dog" var="mydog">
说明:注意到pp用单引号,因为这时要真正用到String,如果没有加单引号,struts2会默认用OGNL到ValueStack找值. 对于为什么可以<s:property value="name"/>(取到pp)这样取值,可以做个小实验在set标签里加入<s:debug/>,这样你可能看到整个栈数据的出入,此时栈顶当然是mydog对象,这个标签执行完后就可以出栈了,这时action又保持在栈顶了. 此时mydog被存入到actioncontext栈中,所以要取值要用到#号了. 取值:<s:property value="#mydog.name/>
7. include标签 <s:include value="/index.html"></s:include> 这里value的默认处理方式是要内容当做String,不是OGNL,如果这时要用OGNL可以用%,这就是%的实际意义了,其实上面所讲的标签也可以使用%,OGNL对于那些默认使用OGNL的标签会忽略%号,真搞不懂为什么全部都统一,这样我们就不用记这么多了^^,下面是具体使用方法: <s:set var="incPage" value="%{'/index.html'}" />
现在回到include标签,这个标签真的不好用对中文的支持不好,可能有BUG,所以还是用jsp自带的动态包含/静态包含.
8. if elseif else标签 定义变量 num= <s:set var="num" value="'100'"/> set定义的变量存在ActionContext栈中 <s:if test="#num< 0"> 小于0 </s:if>
<s:if test="#parameters.aaa == null">null</s:if>
这里说到#parameters不得不提一下,我们在地址栏输入的变量会存在ActionContext栈中,如xx/sdfds.jsp?name=1 这样我们可能用OGNL这样取值#parameters.name ,注意这里取出来的是一个集合,如果你这样访问xx/sdfds.jsp?name=1&name=2,你可以发现可以取出两个值.因为这样所以在写程序时我样最好精确定位像这样#parameters.name[0],就算你能保证只能一个值,也要这样.
9. iterator标签,遍历集合 <s:iterator value="{1, 2, 3}" >
自定义变量: <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
<s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
说明:偶数和其数不是下标,下标0其实是第一个当然是奇数了.
遍历map: <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
说明:这里自定义的map要加#号,看下面例子: <s:set var="m" value="#{1:'oo',2:'kk'}"/>
查了一下官方文档,没找到对map定义的说明,为什么要用到#号?这样定义有什么含义呢?
声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
浏览 2387 次