版权声明:本文为博主原创文章,未经博主允许不得转载。

Struts2可以将所有标签分成3类:

准备工作:需要在JSP页面引入标签库

<%@ taglib prefix="s" uri="/struts-tags" %>

1.<s:set/>标签

<!-- 用法一 相当于 ActionContext.getContext().put(key, value) -->
<s:set name="name" value="'caoyc'"/> <!-- 这里name是字符串形式,所有value值需要加单引号 ,如果不加单引号,该变量的值为null-->
<s:set name="age" value="20"></s:set>
<s:property value="#name"/>
<s:property value="#age"/> <!-- 用法二 指定scope范围 :application、session、request、page或action--><br/>
<s:set name="name2" value="'zhh'" scope="request"/> <!-- 相当于ServletActionContext.getRequest().setAttribute("name2", "zhh") -->
<s:property value="#request.name2"/>

2.<s:property/>标签

(1)从Action栈中的属性获取,要求有getXXX()方法

<s:property value="name"/>

(2)从Action栈中获取对象的属性,要求为该对象属性获取getXXX方法

<s:property value="user.name"/>

(3)访问Action栈中对象方法

<s:property value="user.toString()"/>

(4)访问Action的普通方法

<s:property value="methodName()"/>

(5)访问list集合第一个元素的name属性

<s:property value="#list[0].name"/>

(6)根据key访问Map中的元素

<s:property value="mapName.username"/>
<s:property value="mapName['username']"/>
<s:property value="mapName[/"username/"]"/>

(7)访问request中请求的参数

<s:property value="#parameters.username"/>
<s:property value="#parameters['username']"/>

3、<s:if><s:elseif></s:else>标签

<s:set name="level" value="20 "/>
<s:if test="#level<=12">
小学
</s:if>
<s:elseif test="#level>12 && #level<=15">
初中
</s:elseif>
<s:elseif test="#level>15 && #level<=18">
高中
</s:elseif>
<s:elseif test="#level>18 && #level<=24">
大学
</s:elseif>
<s:else>
硕士及其以上
</s:else>

4、<s:iterator>标签

方式一:这种方式:每当迭代一次,struts就会将迭代器当前对象添加到Root栈的栈顶,所以可以直接通过属性名,访问该对象的属性,每次迭代完后该对象就会自动消失

<s:iterator value="persons">
<s:property value="name"/>
<s:property value="age"/>
</s:iterator>

方式二:指定了var属性,同样会在Root栈的栈顶添加该对象,同时也会复制一份到ActionContext对象中,所以可以通过下面方式访问

<s:iterator value="persons" var="p">
<s:property value="#p.name"/> <!-- 通过ActionComtext方法 -->
<s:property value="age"/> <!-- 通过Root栈访问 -->
</s:iterator>

struts2 常用标签的更多相关文章

  1. Struts2常用标签

    Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的 ...

  2. struts2常用标签详解(申明:来源于网络)

    struts2常用标签详解(申明:来源于网络) 地址:http://blessht.iteye.com/blog/1184960

  3. Struts2常用标签总结(申明:来源于网络)

    Struts2常用标签总结(申明:来源于网络) 地址:http://jimingsong.iteye.com/blog/1582939

  4. Struts2常用标签总结

    Struts2常用标签总结 一 介绍 1.Struts2的作用 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的 ...

  5. struts2常用标签之数据标签

    数据标签1  property标签  property标签的主要属性:  value:用来获取值的OGNL表达式,如果value属性值没有指定,那么将会被设定为top,也就是返回位于值栈最顶端的对象. ...

  6. struts2常用标签使用说明

    在struts2中,用的是s标记,先在jsp文件中引入标记:<%@ taglib prefix="s" uri="/struts-tags"%> & ...

  7. STRUTS2 常用标签的使用

    <body> <h1>s:if标签的用法</h1> <s:set name="price" value="25"> ...

  8. struct2常用标签

    Struts2常用标签总结 一 介绍 1.Struts2的作用    Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了 ...

  9. struts2视频学习笔记 29-30(Struts 2常用标签,防止表单重复提交)

    课时28 Struts 2常用标签解说 property标签 property标签用于输出指定值: <s:set name="name" value="'kk'&q ...

随机推荐

  1. JZYZOJ 1542 [haoi2015]str 矩阵乘法 dp

    http://172.20.6.3/Problem_Show.asp?id=1542 dp+矩阵乘法思路hin好想,对于我这种题目稍微学术就几乎什么也不会的人来说唯一的难点在于读题,因为一心想着划水题 ...

  2. [BZOJ 3326] 数数

    Link: BZOJ 3326 传送门 Solution: 明显是一道数位$dp$的题目,就是递推式复杂了点 先要求出一个数$\bar{n}$向添加一位后的$\bar{np}$的转化关系 令$res[ ...

  3. [xsy2289]B

    题意:给一棵树,一次操作定义为删掉一条树边再加一条边,并且满足加完边后这还是一棵树,问在进行不超过$k$次操作后能构造出多少种不同的树 首先...矩阵树定理在边有边权的时候同样适用,这时可以把它看成重 ...

  4. 【点分治】【FFT】Gym - 101234D - Forest Game

    存个求树上每种长度(长度定义为路径上点数)的路径条数的模板:num数组中除了长度为1的以外,都算了2次. 不造为啥FFT数组要开八倍. #include<cstdio> #include& ...

  5. HTML5 Video P2P技术研究(转)

    说明:之前在Flash时代,可以基于其实现P2P的技术,也就是现在主流的视频网站用的视频技术,不过要实现P2P技术,在Flash时代有点难,且要服务器支持等等:但是现在基于HTML5技术的P2P技术使 ...

  6. mormot日志

    mormot日志 usesSynLog; if log = nil then // 日志 begin log := TSynLog.Add; log.Family.DestinationPath := ...

  7. TWinHTTP

    TWinHTTP USES SynCrtSock procedure hget(const url: string; var ResponseCode: Integer; var ResponseHe ...

  8. win7怎么设置1440*900分辨率

    右击桌面打开nvidia显卡控制面板显示一栏里面选择更改分辨率如果里面没有你要求的1440*900, 点下面的那个自定义,创建自定义分辨率,水平像素填1440,垂直扫描线填900. 创建完就可以应用了

  9. 报错:this class is not key value coding-compliant for the key closeLotTextField解决方法

    几种情况下都会报这种错误: 1,加载自定义的tableViewCell的时候总是死在: XInstrumentOpenCell *cell = [tableViewdequeueReusableCel ...

  10. es6,async简单总结

    1.简单来讲就是把函数变为异步操作的 async function demo() { let result = Math.random(); console.log(result); } 2.asyn ...