`
longgangbai
  • 浏览: 7339418 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

struts2 标签学习

阅读更多

用过struts1.x的人都知道,标签库有html、bean、logic、tiles,
而struts2.0里的标签却没有分类,只用在jsp头文件加上
<%@ taglib prefix="s" uri="/struts-tags" %>
就能使用struts2.0的标签库

下面就介绍下每个标签的用法(有错请指正):

A:

<s:a href=""></s:a>-----超链接,类似于html里的<a></a>
<s:action name=""></s:action>-----执行一个view里面的一个action
<s:actionerror/>-----如果action的errors有值那么显示出来
<s:actionmessage/>-----如果action的message有值那么显示出来
<s:append></s:append>-----添加一个值到list,类似于list.add();
<s:autocompleter></s:autocompleter>-----自动完成<s:combobox>标签的内容,这个是ajax

B:
<s:bean name=""></s:bean>-----类似于struts1.x中的,JavaBean的值

C:
<s:checkbox></s:checkbox>-----复选框
<s:checkboxlist list=""></s:checkboxlist>-----多选框
<s:combobox list=""></s:combobox>-----下拉框
<s:component></s:component>-----图像符号

D:
<s:date/>-----获取日期格式
<s:datetimepicker></s:datetimepicker>-----日期输入框
<s:debug></s:debug>-----显示错误信息
<s:div></s:div>-----表示一个块,类似于html的<div></div>
<s:doubleselect list="" doubleName="" doubleList=""></s:doubleselect>-----双下拉框

E:
<s:if test=""></s:if>
<s:elseif test=""></s:elseif>
<s:else></s:else>-----这3个标签一起使用,表示条件判断

F:
<s:fielderror></s:fielderror>-----显示文件错误信息
<s:file></s:file>-----文件上传
<s:form action=""></s:form>-----获取相应form的值

G:
<s:generator separator="" val=""></s:generator>----和<s:iterator>标签一起使用

H:
<s:head/>-----在<head></head>里使用,表示头文件结束
<s:hidden></s:hidden>-----隐藏值

I:
<s:i18n name=""></s:i18n>-----加载资源包到值堆栈
<s:include value=""></s:include>-----包含一个输出,servlet或jsp页面
<s:inputtransferselect list=""></s:inputtransferselect>-----获取form的一个输入
<s:iterator></s:iterator>-----用于遍历集合

L:
<s:label></s:label>-----只读的标签

M:
<s:merge></s:merge>-----合并遍历集合出来的值

O:
<s:optgroup></s:optgroup>-----获取标签组
<s:optiontransferselect doubleList="" list="" doubleName=""></s:optiontransferselect>-----左右选择框

P:
<s:param></s:param>-----为其他标签提供参数
<s:password></s:password>-----密码输入框
<s:property/>-----得到'value'的属性
<s:push value=""></s:push>-----value的值push到栈中,从而使property标签的能够获取value的属性

R:

<s:radio list=""></s:radio>-----单选按钮
<s:reset></s:reset>-----重置按钮


S:
<s:select list=""></s:select>-----单选框
<s:set name=""></s:set>-----赋予变量一个特定范围内的值
<s:sort comparator=""></s:sort>-----通过属性给list分类
<s:submit></s:submit>-----提交按钮
<s:subset></s:subset>-----为遍历集合输出子集

T:
<s:tabbedPanel id=""></s:tabbedPanel>-----表格框
<s:table></s:table>-----表格
<s:text name=""></s:text>-----I18n文本信息
<s:textarea></s:textarea>-----文本域输入框
<s:textfield></s:textfield>-----文本输入框
<s:token></s:token>-----拦截器
<s:tree></s:tree>-----树
<s:treenode label=""></s:treenode>-----树的结构

U:
<s:updownselect list=""></s:updownselect>-----多选择框
<s:url></s:url>-----创建url
Struts2.0标签大体可分为以下几类:
1.UI(User Interface,用户界面)标签:主要生成HTML元素标签;
    (1)表单标签:用于生成HTML页面的form元素,以及普通表单元素的标签。
    (2)非表单标签:用于生成页面上的树、Tab也等标签。
2.非UI标签:主要用于数据访问、逻辑控制等的标签;
    (1)流程控制标签:主要包含用于实现分支、循环等流程控制的标签。
    (2)数据访问标签:主要包含与输出ValueStack中的值,完成国际化等功能的标签。
3.Ajax标签:用于Ajax支持的标签;
一、使用Struts2标签库的准备
在工程中加入Struts2的Jar文件。
修改Web.xml文件如:
 1<?xml version="1.0" encoding="UTF-8"?>
 2<web-app version="2.4"
 3    xmlns="http://java.sun.com/xml/ns/j2ee"
 4    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
 5    xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
 6    http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
 7    <filter>
 8        <filter-name>struts2</filter-name>
 9        <filter-class>org.apache.struts2.dispatcher.FilterDispatcher</filter-class>
10    </filter>
11    <filter-mapping>
12        <filter-name>struts2</filter-name>
13        <url-pattern>/*</url-pattern>
14    </filter-mapping>
15</web-app>二、在使用标签时别忘了用taglib编译指令导入Struts2的标签库定义
1<%="s" uri="/struts-tags" %>三、下面我就开始探讨一下Struts2.0标签库控制标签的使用。
1.if/elseif/else标签
 1<%@ page language="java" pageEncoding="ISO-8859-1"%>
 2<%@ taglib prefix="s" uri="/struts-tags" %>
 3<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
 4<html>
 5  <head>
 6    <title>If_Else</title>
 7  </head>
 8  <body>
 9    <s:set name="name" value="#parameters.name[0]"></s:set>
10    <s:if test="#name=='woailuo'">
11        woailuo is here!
12    </s:if>
13    <s:elseif test="#name=='mingren'">
14        mingren is here!
15    </s:elseif>
16    <s:else>
17        zuozhu is here!
18    </s:else>
19  </body>
20</html>2.Iterator标签
Iterator主要对集合进行迭代,包括List、Set、Map;它的属性有3个:
    (1)value:可选属性,value指定被迭代的集合,被迭代的集合通常用OGNL表达式指定。如没有value属性,则使用ValueStatus栈顶的集合。
    (2)id:可选属性,指定集合中的元素的ID。
    (3)status:可选属性,给属性指定迭代的IteratorStatus实力,该实例包含几个方法:int getCount()返回当前迭代了几个元素;int getIndex()返回当前迭代元素的索引;Boolean isEven()返回当前迭代的元素是否是偶数;boolean isOdd()返回是否是奇数;boolean isFirst()是否是第一个元素;boolean isLast()是否是最后一个。
 1<%@ page language="java"  pageEncoding="utf-8"%>
 2<%@ taglib prefix="s" uri="/struts-tags" %>
 3<html>
 4  <head>
 5    <title>iterator</title>
 6  </head>
 7  <body>
 8      <table border="1" width=100>
 9          <s:iterator value="{'struts2.0','hibernate','ajax','spring'}" id="name" status="st">
10              <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
11                  <td><s:property value="#st.count"/><s:property value="name"/></td>
12              </tr>
13          </s:iterator>
14      </table>
15  </body>
16</html>3.append标签
append标签用于将多个集合对象拼接起来,组合一个新的集合。从而通过一个<s:iterator.../>完成对多个集合的迭代。
 1<%@ page language="java"  pageEncoding="utf-8"%>
 2<%@ taglib prefix="s" uri="/struts-tags" %>
 3<html>
 4  <head>
 5    <title>iterator</title>
 6  </head>
 7  <body>
 8      <table border="1" width="100">
 9          <s:append id="newList">
10              <s:param value="{'struts2.0','hibernate','ajax','spring'}"/>
11              <s:param value="{'javaScript','sql server'}"/>
12          </s:append>
13          <s:iterator value="#newList" status="st">
14              <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
15                  <td><s:property value="#st.count"/><s:property/></td>
16              </tr>
17          </s:iterator>
18      </table>
19  </body>
20</html>
214.merge标签
merge标签与append标签非常相似,他们都是将多个集合拼接成一个。他们的区别在于拼接后集合元素的顺序不同。
append方式拼接,新元素的顺序为:
(1)第一个集合中的第一个元素;
(2)第一个集合中的第二个元素;
(3)第二个集合中的第一个元素;
(4)第二个集合中的第二个元素;
merge方式拼接,新元素的顺序为:
(1)第一个集合中的第一个元素;
(2)第二个集合中的第一个元素;
(3)第一个集合中的第二个元素;
(4)第二个集合中的第二个元素;
5.subset标签
subset标签用于取得集合的子集,它的属性有如下:
(1)count:可选属性,指定子集中元素的个数,默认取得全部;
(2)source:可选属性,指定源集合,默认取得ValueStack栈顶的集合;
(3)start:可选属性,指定子集从源集合第几个开始截取,默认从第一个截取(start为0);
(4)decider:可选属性,是否选中该属性;
 1<%@ page language="java" pageEncoding="utf-8"%>
 2<%@ taglib prefix="s" uri="/struts-tags"%>
 3<html>
 4    <head>
 5        <title>iterator</title>
 6    </head>
 7    <body>
 8        <table border="1" width="100">
 9            <s:subset
10                source="{'struts2.0','hibernate','ajax','spring','javaScript'}"
11                count="3" start="1" id="subset">
12            <s:iterator status="st">
13                <tr <s:if test="#st.odd">style="background-color:#bbbbbb"</s:if>>
14                    <td>
15                        <s:property value="#st.count" />
16                        <s:property/>
17                    </td>
18                </tr>
19            </s:iterator>
20            </s:subset>
21        </table>
22    </body>
23</html>
246.关于控制标签还有generator标签和sort标签
他们的作用分别是:generator是将指定的字符串按指定的分隔符分隔成多个子串;sort是对指定的集合元素进行排序必须提供自己的排序规则。
因为这两个用到的比较少,所以就不罗嗦了。

set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age 每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内
name 是必填属性,是重新生成的新变量的名字
scope 可选属性,指定新变量被放置的范围,可以接受application,session,request,page,action 这5个值 没有指定默认是Stack Context中
value 可选属性,指定变量的值 如果没有指定,使用ValueStack栈顶的值赋给新变量
id 可选属性,指定新元素的引用ID

下面是个例子:

<!-- 使用bean标签定义一个javaBean实例--!>
<s:bean name="lee.Person" id="p">
<s:param name="name" value="zhangsan"/>
<s:param name="age" value="29"/>
</s:bean>
将p放入默认范围内
<s:set value="#p" name="test"/>
<s:property value="#test.name"/> <br>
<s:property value="#test.age"/> <br>
将p放入application范围内。
<s:set value="#p" name="test" scope="application"/>
<s:property value="#attr.test.name"/> <br>
<s:property value="#attr.test.age"/> <br>
将p放入session范围内。
<s:set value="#p" name="test" scope="session"/>
${sessionScope.test.name} <br>
${sessionScope.test.age} <br>

分享到:
评论

相关推荐

    struts2标签学习

    Struts2标签是Java开发中基于Struts2框架的一个重要组成部分,它提供了丰富的标签库,使得在JSP页面中处理业务逻辑和展示数据变得更加简洁和高效。与Struts1的标签库相比,Struts2的标签更加灵活且功能更加强大。 ...

    struts2标签使用例子

    在压缩包中的"example"文件可能包含了一个或多个使用Struts2标签的实际示例,可以参考这些示例来理解和学习Struts2标签的用法。通过实践,你会更好地掌握这些标签的功能和用法,从而在开发过程中更加得心应手。

    Struts2标签集锦(附Struts2标签详解word文档)

    Struts2标签是Java开发中一个非常重要的工具,它极大地简化了MVC框架下的视图层构建,使得开发者能够...提供的“Struts2标签详解.doc”文档将对这些概念进行详细的解释,是深入学习和理解Struts2标签的重要参考资料。

    在Eclipse中配置Struts2项目(html)手把手教会你 +struts2 标签库介绍(html) + STRUTS2学习文档.pdf + Struts2―表单验证validate(html) + struts2和struts的比较 + struts教程(html)

    STRUTS2学习文档.pdf 对Struts2的一些配置文件进行了详细的说明。 Struts2―表单验证validate(html)对validate的type属性校验类型以及param 做了详细的解释说明。 struts2和struts的比较 让你更清楚的知道struts2...

    Struts2标签使用及API文档

    在Struts2框架中,标签库是其重要组成部分,它提供了丰富的标签来帮助开发者更方便地构建用户界面。下面我们将深入探讨Struts2标签的使用及其API文档。 1. **Struts2标签的分类与功能** - **控制标签**:如`s:if`,...

    struts2标签库

    Struts2标签库是Java Web开发中非常重要的一个组件,它是Apache Struts2框架的核心特性之一,极大地简化了视图层的开发工作。Struts2的标签库提供了一系列的JSP标签,使得开发者能够更方便地创建动态网页,提高代码...

    struts2 标签 tags API 参考文档

    参考文档是开发者理解和使用Struts2标签的关键资源,它详细阐述了每个标签的功能、属性、用法及示例,有助于快速学习和掌握Struts2的视图层开发。 通过深入学习和实践Struts2的标签API,开发者可以有效地提升Web...

    Struts2自定义分页标签

    Struts2作为一款流行的Java Web框架,为开发者提供了强大的MVC支持。在处理大量数据时,分页功能是必不可少的,它可以提高...通过学习和实践,开发者可以更好地理解和应用Struts2框架,提升其在Web开发中的专业能力。

    struts2-tags-API,struts2标签api

    总结,`struts2-tags-API`是学习和使用Struts2框架标签的重要资源。通过深入理解和应用这些标签,开发者可以构建出高效、整洁且易于维护的Web应用。对于Java web开发者来说,掌握Struts2标签的API是提升开发效率的...

    Struts2标签中文文档(html和chm格式)

    CHM文件是一种基于HTML的帮助文件,集成了目录、索引和搜索功能,方便用户快速查找和学习Struts2标签API的相关信息。这个文档详细列出了所有Struts2标签的用法、属性、事件和示例,对于初学者和经验丰富的开发者都是...

    struts2标签api

    Struts2标签API是Struts2框架中一个重要的组成部分,它提供了一系列的预定义标签,使得开发者能够更方便地在JSP...通过不断实践和学习,开发者可以更熟练地运用Struts2标签API,构建出高效且易于维护的Web应用程序。

    Struts2之struts2标签库了解和使用案例struts025

    Struts2是一个强大的Java EE应用程序框架,用于构建和维护可扩展、模块化和易于管理的Web应用程序。在Struts2中,标签库是其核心组件之一,极...学习并熟练掌握Struts2标签库的使用,是每个Java Web开发者必备的技能。

    struts2标签详解与实例

    Struts2标签详解与实例 在Java Web开发中,Struts2框架因其强大的MVC(模型-视图-控制器)架构而备受青睐。Struts2提供了丰富的标签库,简化了视图层的开发,使开发者可以更加专注于业务逻辑。本文将深入探讨Struts...

    struts2标签库详解(非常不错)

    Struts2标签库是开发...学习和熟练掌握Struts2标签库能够提高开发效率,使代码更加整洁和易于维护。通过实际项目中的应用和不断实践,你可以更好地理解这些标签的用处和背后的机制,进一步提升你的Java Web开发技能。

    struts标签 struts标签 struts标签

    学习和熟练使用Struts标签是成为高效Struts开发者的关键。为了更好地理解和应用这些标签,建议实践编写示例,查看官方文档和在线教程,这样可以加深对每个标签功能的理解,以及它们在实际场景中的应用。

    struts2 学习重点笔记

    ### Struts2 学习重点知识点总结 #### 一、Struts2 概念与架构 **1.1 Struts2 简介** - **定义**:Struts2 是 Apache 组织提供的一个基于 MVC 架构模式的开源 Web 应用框架。 - **核心**:Struts2 的核心其实是 ...

    struts2.0标签使用源码

    此外,还可以学习如何配置Struts2拦截器,结合标签库实现更强大的功能,如表单验证、国际化等。 总之,理解并熟练掌握Struts2.0标签的使用及其源码,能够帮助我们构建高效、易维护的Web应用程序,提升开发效率。...

    struts1标签库详解

    Struts1 标签库详解 Struts1 标签库是 Apache Jakarta 的一个著名的开源项目,目标是为构建基于 Java 的 web ...学习 Struts 标签最好的方式就是参考良好的示例,幸运的是这些示例可以在 Struts 的用户指南中找到。

    struts2标签库的使用pdf+Word格式

    通过学习和实践,开发者可以更好地理解和掌握Struts2框架,提升Web应用的开发效率。 总之,Struts2标签库是Java Web开发中不可或缺的一部分,它使得JSP页面更加简洁,提高了代码的可维护性。通过阅读提供的PDF和...

Global site tag (gtag.js) - Google Analytics