在Struts2框架中提供了一套标签库,可以与struts2无缝结合。

  

  数据标签a、action、bean、date、debug、i18n、include、param、property、push、set、text、url

  控制标签:if、elseif、else、append、generator、interator、merge、sort、subset

简单实例

property:用来取得值桟中的值。

<s:push value="myBean">
    <!-- Example 1: -->
    <s:property value="myBeanProperty" />
 
    <!-- Example 2:
escapeHtml :表示是否跳过html,默认为true
-->TextUtils
    <s:property value="myBeanProperty" default="a default value" escapeHtml=“false”/>
</s:push>

param:用来给其他标签传入参数

  |-name:参数的名字

  |-value:参数的值

  |-suppressEmptyParameters:是否压缩空参数

set:用来声明一个在特定作用于的变量

  作用域有:application、session、request、page、action

  几个属性:

    |-scope:作用域,默认是action

    |-value:变量的值

    |-var:变量的名字

*注意变量值的地方需要在双引号里面加单引号

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<s:set var="i" value="1"></s:set>
<s:property value="#i"/><br/>
<s:set var="xx" value="#i" scope="session"/>
<s:set var="a" value="'application范围的值'" scope="application"/>
<s:set var="s" value="'session范围的值'" scope="session"/>
<s:set var="r" value="'request范围的值'" scope="request"/>
<s:set var="p" value="'page范围的值'" scope="page"/>
<s:set var="ac" value="'action范围的值'" scope="action"></s:set> -------------------------<br/>
<s:property value="#session.xx"/><br/>
<s:property value="#ac" /><br/>
<s:property value="#attr.p" /><br/>
<s:property value="#request.r" /><br/>
<s:property value="#session.s" /><br/>
<s:property value="#application.a"/><br/> </html>

输出结果:

bean:用来定义一个java bean

  |-name:bean的全路径类名字

  |-var:定义的javabean的名字

package com.fuwh.model;

public class Student {

    private int id;
private String name;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
} }
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<s:bean name="com.fuwh.model.Student" var="student">
<s:param name="id" value="2"></s:param>
<s:param name="name" value="'张三'"></s:param>
</s:bean>
-------------------------<br/>
<s:property value="#student.id"/>
<s:property value="#student.name"/>
</body>
</html>

执行结果:

date:用不同的方式格式化日期

  |-fromat:指定日期显示格式

  |-name:需要被格式化的日期的值

  |-nice:是否nicely的打印日期

  |-timezone:格式化日期的时区

  |-var:引用值桟中的日期

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
request.setAttribute("date",new Date());
%>
-------------------------<br/>
${date }<br/>
<s:date name="#request.date" format="yy-MM-dd hh:mm:ss"/>
</body>
</html>

输出结果:

debug标签:可以输出值桟中的值

<s:debug></s:debug>

url和a标签

  url:创建一个url变量,可以在里面 用param标签来传入参数

  a:创建一个url

includ:用来引入别的资源

<s:include value="head.jsp"></s:include>

控制标签

if,elseif,else

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
int age=18;
request.setAttribute("age", age);
%> <s:if test="#request.age>18">
已经成年
</s:if>
<s:elseif test="#request.age<18">
还没成年
</s:elseif>
<s:else >
刚好年芳18
</s:else>
</body>
</html>

iterator:用来循环输出

  |-begin:循环输出的开始下标,默认0

  |-end:循环输出的结束下标

  |-status:代表下一个要被输出的

  |-step输出的每次跳跃多少

  |-value:被遍历的对象

  |-var:代表每个取出的变量

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*" %>
<%@ page import="com.fuwh.model.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
List<Student> stuList=new ArrayList<Student>();
stuList.add(new Student(1,"fuwh"));
stuList.add(new Student(2, "zhangsan"));
stuList.add(new Student(3, "lisi"));
request.setAttribute("stuList", stuList);
%>
<table>
<tr>
<th>编号</th>
<th>学号</th>
<th>名字</th>
</tr>
<s:iterator value="#request.stuList" var="student" status="status">
<tr>
<td><s:property value="#status。index+1"/></td>
<td><s:property value="#request.student.id"/></td>
<td><s:property value="#request.student.name"/></td>
</tr>
</s:iterator>
</table> </body>
</html>

append:把输出的对象叠加起来

  |-var:代表叠加后的对象名

<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<%@ page import="java.util.*" %>
<%@ page import="com.fuwh.model.*"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Insert title here</title>
</head>
<body>
<%
List<Student> stuList=new ArrayList<Student>();
stuList.add(new Student(1,"fuwh"));
stuList.add(new Student(2, "zhangsan"));
stuList.add(new Student(3, "lisi"));
request.setAttribute("stuList", stuList);
List<Student> stuList2=new ArrayList<Student>();
stuList2.add(new Student(1,"fuwh"));
stuList2.add(new Student(2, "zhangsan"));
stuList2.add(new Student(3, "lisi"));
request.setAttribute("stuList2", stuList2);
%>
<s:append var="stuList3">
<s:param value="#request.stuList"></s:param>
<s:param value="#request.stuList2"></s:param>
</s:append>
<table>
<tr>
<th>编号</th>
<th>学号</th>
<th>名字</th>
</tr>
<s:iterator value="stuList3" var="student" status="status">
<tr>
<td><s:property value="#status.index+1"/></td>
<td><s:property value="id"/></td>
<td><s:property value="name"/></td>
</tr>
</s:iterator>
</table> </body>
</html>

generator标签

  用来分割生成一个迭代输出器。

Merge标签

  用来组合

Sort标签

  排序标签

Subset标签

  截取

界面标签

  Form标签

  Text标签

  

  Radio标签

  Checkboxlist标签

  Select标签

其他标签

Struts2--标签tag的更多相关文章

  1. struts2官方 中文教程 系列三:使用struts2 标签 tag

    避免被爬,先贴上本帖地址:struts2 官方系列教程一:使用struts2 标签 tag http://www.cnblogs.com/linghaoxinpian/p/6901316.html 本 ...

  2. JSTL标签,EL表达式,OGNL表达式,struts2标签 汇总

    一下纯属个人总结摘抄,总结一起方便查看,解决疑问,有遗漏或错误,还请指出.       1,JSTL标签总结: a).JSTL标签有什么用?          JSTL是由JCP(Java Commu ...

  3. struts2标签整理

    在JSP2.1中#被用作了JSP EL(表达式语言)的特殊记好,所以对OGNL的使用可能导致问题,   一个简单的方法是禁用JSP2.1的EL特性,这需要修改web.xml文件:   Java代码   ...

  4. 引用 struts2标签详解 - wo的的日志 - 网易博客

    引用 元元 的 struts2标签详解   引用 COLD 的 struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@t ...

  5. struts2框架学习笔记7:struts2标签

    三大标签: 1.JSP:脚本,为了替代servlet,已过时 2.JSTL:标准标签库(core.format.sql.xml),还未淘汰的只有core库 3.Struts2标签库:由Struts2开 ...

  6. ognl,jstl,struts2标签中符号#,$,%的用法

    STRUTS2标签操作Map <s:iterator value="sundayMap">           <td colspan="7" ...

  7. struts2标签使用详解

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

  8. JSP使用Struts2标签库报错

    JSP中使用<%@ taglib prefix="s" uri="/struts-tags" %>报错:Cannot find the tag li ...

  9. 用struts2标签如何从数据库获取数据并在查询页面显示。最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变量。

    最近做一个小项目,需要用到struts2标签从数据库查询数据,并且用迭代器iterator标签在查询页面显示,可是一开始,怎么也获取不到数据,想了许久,最后发现,是自己少定义了一个变量,也就是var变 ...

  10. struts2 标签 和 c标签的页面数据显示

    用struts2 标签显示的页面代码 <s:if test="#request.employees == null || #request.employees.size() == 0& ...

随机推荐

  1. 使用.NET开发AutoCAD——C#/AutoCAD 2018/ObjectArx/二次开发入门(二)

    1.开发环境配置: (1)安装AutoCAD2018: (2)安装VS2015: (3)安装ObjectARX 2018类库: (4)安装ObjectARX 2018 .NET开发向导(ObjectA ...

  2. js中的类型转换

    先介绍一下 typeof 的使用方法: typeof(mix)   或者  typeof  mix 其中 mix 可以是任何数据类型 typeof 的返回值有六种:number.string.bool ...

  3. alpha-咸鱼冲刺day6-紫仪

    总汇链接 一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 !!!QAQ可以做到跟数据库交互了!!!!先来撒花花!(然后继续甲板) (然后就没有进展了.翻车+1s) 四,问题困难 ...

  4. C语言第二次博客作业——分支结构

    一.PTA实验作业 题目1:计算分段函数 1.实验代码 #include<stdio.h> #include<math.h> int main(void) { double x ...

  5. alpha-咸鱼冲刺day4

    一,合照 emmmmm.自然还是没有的. 二,项目燃尽图 三,项目进展 QAQ具体工作量没啥进展.但是前后端终于可以数据交互了!.. 四,问题困难 日常啥都不会,百度真心玩一年. 还得自学nodejs ...

  6. 团队作业7——第二次项目冲刺(Beta版本12.05-12.07)

    1.当天站立式会议照片 本次会议内容:1:每个人汇报自己完成的工作.2:组长分配各自要完成的任务. 2.每个人的工作 黄进勇:项目整合,后台代码. 李勇:前台界面优化. 何忠鹏:数据库模块. 郑希彬: ...

  7. iOS开发UIKit框架-可视化编程-XIB

    1. Interface Builder 可视化编程 1> 概述 GUI : 图形用户界面(Graphical User Interface, 简称GUI, 又称图形化界面) 是指采用图形方式显 ...

  8. 学大伟业 国庆Day2

    期望得分:30+100+0=130 实际得分:30+100+20=150 忍者钩爪 (ninja.pas/c/cpp) [问题描述] 小Q是一名酷爱钩爪的忍者,最喜欢飞檐走壁的感觉,有一天小Q发现一个 ...

  9. nyoj 对决

    对决 时间限制:1000 ms  |  内存限制:65535 KB 难度:0   描述 Topcoder 招进来了 n 个新同学,Yougth计划把这个n个同学分成两组,要求每组中每个人必须跟另一组中 ...

  10. 【bug清除】新Surface Pro使用OneNote出现毛刺现象的解决方案

    在写字的时候,左手触摸Surface的金属外壳背面,大概两个手指指肚大小.问题亲测可以得到解决. 推测是设备使用时接地没有做好,导致电磁笔出现偏移.问题初步锁定在新笔的倾斜感应上. 参考资料: htt ...