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

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. [BZOJ1860][ZJOI2006]Mahjong(DP)

    1860: [Zjoi2006]Mahjong麻将 Time Limit: 1 Sec  Memory Limit: 64 MBSubmit: 412  Solved: 248[Submit][Sta ...

  2. [USACO 2016 Dec Gold] Tutorial

    Link: 传送门 A: 贪心从小到大插入,用并查集维护连通性 #include <bits/stdc++.h> using namespace std; #define X first ...

  3. CodeForces - 1000E We Need More Bosses

    题面在这里! 依然一眼题,求出割边之后把图缩成一棵树,然后直接求最长链就行了2333 #include<bits/stdc++.h> #define ll long long using ...

  4. 【找规律】【二进制拆分】hdu6129 Just do it

    给你数列a,问你对它作m次求前缀异或和之后的新数列是什么. 考虑a1对最终生成的数列的每一位的贡献,仅仅考虑奇偶性, 当m为2的幂次的时候,恰好是这样的 2^0 1 1 1 1 1 ... 2^1 1 ...

  5. 【动态规划去除冗余】NOIP2010-乌龟棋

    [题目大意] [思路] 最简单的思路是五维数组,但是当前走到的步数由已经取到的卡片决定,所以只需要四维.本来想要改一个滚动数组的,但是好像没有滚起来,算了(ノ`Д)ノ. 在学校要晚自习到21:15,回 ...

  6. 数据库之mysql的基本操作

    1 数据库 1.1 数据库介绍 为什么要有数据库? 数据需要大量的存储,把数据永久保存下来,可以保存到文件中,当然也可以保存到数据库中. 数据库:通俗的说,存储数据的仓库,是管理数据的文件夹:存放数据 ...

  7. openstack-cinder-netapp

    https://communities.netapp.com/docs/DOC-31749 http://docs.openstack.org/havana/config-reference/cont ...

  8. 探索 vuex 2.0 以及使用 vuejs 2.0 + vuex 2.0 构建记事本应用23

    前言 首先说明这并不是一个教程贴,而记事本应用是网上早有的案例,对于学习 vuex 非常有帮助.我的目的是探索 vuex 2.0 ,然后使用 vuejs 2.0 + vuex 2.0 重写这个应用,其 ...

  9. Sysfs文件系统与Linux设备模型

    转:http://www.360doc.com/content/11/1218/16/1299815_173168170.shtml sysfs把连接在系统上的设备和总线组织成为一个分级的目录及文件, ...

  10. 推荐一篇讲arm架构gcc内联汇编的文章

    这是来自ethernut网站的一篇文章,原文链接: http://www.ethernut.de/en/documents/arm-inline-asm.html 另外,据说nut/os是个不错的开源 ...