Struts2之标签库常用标签

news/2024/11/29 8:49:34/

基本概述:在JavaWeb中,Struts2标签库是一个比较完善,而且功能强大的标签库,它将所有标签都统一到一个标签库中,从而简化了标签的使用,它还提供主题和模板的支持,极大地简化了视图页面代码的编写,同时它还提供对ajax的支持,大大的丰富了视图的表现效果。与JSTL(JSP Standard Library,JSP 标准标签库)相比,Struts2标签库更加易用和强大。

PS:使用标签,需要引入Struts2核心jar包,在jsp头部,加入<%@ taglib uri="/struts-tags" prefix="s" %>即可

Struts2标签库的分类:


数据标签:

1、property   

<!-- value:可选属性,指定需要输出的属性值,如果没有指定该属性,则默认输出ValueStack栈顶的值 -->
<s:property value="cla2.num1"/>

2、set

注:set中的var没有放到值栈中

<s:set var="test2" value="cla2"></s:set>
<!-- 取不到值,因为标签代表的含义是,从值栈中去找test2的num1属性值 -->
没加#:<s:property value="test2.num1"/>
<!-- 能取到值,因为取的是非根(不是valuestack下)对象的num1属性值 -->
加#:<s:property value="#test2.num1"/>

页面效果:

3、push

push表示弹栈,标签体中即可拿到弹栈内容,结束标签回归原样

push前:<s:property/>
<s:push value="result">push后:<s:property/>
</s:push>
push完成后:<s:property/>

页面效果:

4、action

作用:是为了向后台发请求拿数据,加载初始化数据所用

<s:action name="tagAction" namespace="/sy" var="test3"></s:action>
test3:<s:property value="test3" />
test3.result:<s:property value="#test3.result" />

页面效果:

5、url

    作用:用于存放一个路径
    属性:
        action:动作名称
        namespace:名称空间
        var:取值是一个普通字符串。他会把action和namespace组成一个url作为value,把var的取值作为一个key,存入contextMap中

<s:url namespace="/sy" action="tagAction" var="test4"></s:url>
<s:a href="%{#test4}">GO</s:a>

6、param

属于子标签,通常是配合action、url去使用的

<s:url namespace="/sy" action="tagAction" var="test5"><s:param name="test6">result</s:param><s:param name="test7" value="result"></s:param>
</s:url>
test5:<s:property value="test5" />

页面效果:

7、date

   它是用于格式化输出日期
    name属性:取值是一个ognl表达式,表示要格式化的日期对象
    format属性:指定格式
    var属性:取值是一个普通的字符串。
           把格式化好的日期字符串作为value,把var的取值作为key。存入contextMap中

<%request.setAttribute("time", new Date());
%>
<s:date name="#request.time" format="yyyy-MM-dd"/>

8、debug

debug标签用于调试Struts2,使用它会在页面中生成一个debug标签,点击后会显示服务器各种对象信息,包括值栈、ContextMap等

<s:debug></s:debug>

控制标签:

1、iterator

s:iterator是struts2的一个迭代标签,它的value属性取值是一个OGNL表达式
var属性:它的取值就是一个普通的字符串.
用了var:把每次遍历的对象作为value,把var的值作为key,存入ContextMap中
没用var:把每次遍历的对象压入栈顶,再下次遍历之前弹栈(从栈顶移走)

<%request.setAttribute("names", new String[]{"zs","ls","ww"});
%>
<ul><s:iterator value="#request.names" var="i"><li><s:property value="#i" /></li></s:iterator>
</ul>

2、if/elseif/else

          <%request.setAttribute("score", new Integer(30));%><s:if test="#request.score>80">A</s:if><s:elseif test="#request.score>60">B</s:elseif><s:else>C</s:else>

表单标签:

               <s:form name="tagAction" namespace="/sy"><s:textfield label="姓名" name="uname"></s:textfield><!-- 写法一 --><s:radio list="{'男','女'}" value="'男'" label="性别" name="sex"></s:radio><!-- 写法二 --><s:radio list="#{1:'男',2:'女'}" value="2" label="性别" name="sex2"></s:radio><s:select list="#{1:'T211',2:'T204',3:'T237' }" label="班级" name="clazz"></s:select><!-- 单选复选框:往后台传的是boolean类型 --><s:checkbox label="婚否" name="married"></s:checkbox><!-- 多选复选框 --><s:checkboxlist list="#{1:'吃',2:'喝',3:'玩' }" label="爱好" name="hobby"></s:checkboxlist><s:textarea label="备注" name="remark"></s:textarea></s:form>

页面效果:

 


http://www.ppmy.cn/news/521474.html

相关文章

MyBatis第一讲:MyBatis

一、什么是框架 1、1什么是框架 **框架&#xff08;Framework&#xff09;**是整个或部分系统的可重用设计&#xff0c;表现为一组抽象构件及构件实例间交互的方法; 另一种定义认为&#xff0c;框架是可被应用开发者定制的应用骨架。开发者可以根据自己的需求定制框架中的某些…

数据库高级

数据库高级&#x1f985; 文章目录 数据库高级&#x1f985;范式&#x1f98d;什么是范式&#x1f40a;第一范式——1NF&#x1f996;第二范式——2NF&#x1f41f;第三范式——3NF&#x1f409;总结&#x1f419; 五大约束&#x1f40f;主键约束&#x1f421;外键约束&#x1…

spring框架-循环依赖问题(二)

文章目录 什么是循环依赖解决循环依赖的办法知识扩展 什么是循环依赖 两个或多个类之间存在彼此依赖的情况,形成一个循环依赖链 代码&#xff1a; 单例bean的循环依赖&#xff1a; 先了解Bean的生命周期&#xff1a;1.实例化 2.初始化、3.使用 4.销毁 详细了解Bean生命周期…

Python基础篇(二):入门基础必备知识

Python基础篇(一)&#xff1a;如何使用PyCharm创建第一个Python项目(包含tools) 入门基础必备知识 1. 标识符2. 关键字2.1 关键字字典 3. 引号3.1 表示字符串3.2 在字符串中使用引号3.3 创建多行字符串3.4 在注释中使用引号 4. 编码5. 输入输出5.1 输入示例5.2 输出示例5.3 格…

王道2019年计算机考研专业课培训书籍

王道2019年计算机考研专业课培训书籍 4本考研计算机专业课 1、王道2019年操作系统考研复习指导 2、王道2019年计算机网络考研复习指导 3、王道2019年计算机组成原理考研复习指导 4、王道2019年数据结构考研复习指导 2元通道&#xff1a;http://www.jztuan.net/product/vi…

计算机考研推荐的专业课视频链接(408)

王道的视频都是很不多的&#xff0c;小姐姐的声音也很好听哦~~ 下面就附上链接 计算机网络&#xff1a; https://www.bilibili.com/video/BV19E411D78Q?fromsearch&seid13716246991938730366 操作系统&#xff1a; https://www.bilibili.com/video/BV1YE411D7nH/?spm_id_…

计算机考研四门专业课都要考吗,2022考研:计算机专业需要准备哪些科目?

计算机行业的高薪是众人皆知的&#xff0c;因此不论是在高考志愿填写还是在考研的专业选择上&#xff0c;计算机专业的报考热度都一直位居前列。今天&#xff0c;我们就来了解一下2022计算机考研都考哪些科目。 一、专业课 近几年的形式来看&#xff0c;计算机考研很多学校都不…

22考研计算机专业课——数据结构【❤️考研复习指导❤️】

本次复习指导是基于我在21考研初试中我的王道考研数据结构这本书&#xff0c;加上【数据结构与算法设计】这本教材&#xff0c;书上和笔记本上都记满了笔记和重难点&#xff0c;所以在此回顾这些基本知识点&#xff0c;不能做到我当时的面面俱到&#xff0c;但是尽量完整&#…