struts常用标签

  Struts2框架的标签库可以分为以下三类:

    用户界面标签:主要用来生成HTML元素的标签。

      表单标签:主要用于生成HTML页面的FORM元素,以及普通表单元素的标签。

      非标单标签:主要用于生成页面上的tree,tab页等。

    非用户界面标签:主要用于数据访问,逻辑控制。

      数据访问标签:主要包含用于输出值栈(ValueStack)中的值,完成国际化等功能的标签。

      流程控制标签:主要包含用于实现分支,循环等流程控制的标签。

    AJAX标签:用于支持AJAX效果。

struts2标签语法

  要在jsp中使用Struts2的标志,先要指明标志的引入。通过jsp的代码的顶部加入以下的代码:

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

  struts2的标签都支持动态数据访问,标签的属性都可以使用OGNL表达式

  struts2标签的属性具有类型,对于字符串的属性,如果要访问动态数据,需要使用%{。。。}这样的语法,例如:<s:include value="%{url}"/>        <s:include value="urlTag.action"/>

  对于非字符串类型的属性值,将直接作为OGNL表达式进行求职。例如:<s:property value="username">

  property标签的value属性值username将作为OGNL表达式进行求值,如果要为非字符串的属性直接指定字符串数据,那么需要使用OGNL中的字符串常量,即用单引号(‘)或双引号(”)将字符串括起来

  例如<s:property value="'zhangsan'">

 

常用标签

  struts2中非用户界面标签可分为二类:控制标签和数据标签。控制标签用于呈现页面时控制执行流程,数据标签用于访问值栈中的数据。

  数据标签:用于访问ActionContext和值栈中的数据。数据标签包括:property、set、push、param、bean、action、include url、a、i18n、text、date、debug

  控制标签:用于在呈现结果页面时控制程序的执行流程,根据程序执行的状态输出不同的结果,控制标签包括下列标签:if/elseif/else、iterator、append、merge、generator、subset、sort

  property标签用于输出值栈中的对象的属性值,使用value属性来指定要输出的对象属性,如果没有指定value属性,那么默认输出值栈顶对象。

 set标签将一个值赋给指定范围内变量。Set标签在某些情况下是比较有用的,例如在页面中多次引用一个复杂的表达式,我么可以将这个表达式赋给一个变量,然后直接引用变量。带来的好处就是:提升性能,提高代码的可读性。

set标签和property标签的使用

date标签用于格式化输出日期,也可用于输出当前日期与指定日期值之间的时差

控制标签用于完成流程控制,列入分支循环等操作。控制标签包含下面几个:

  if:用于控制选择输出。

  elseif:同if标签结合使用,用来控制选择输出。

  else:同if标签结合使用,用来控制选择输出。

  iterator:迭代器,用来迭代输出集合。

if/elseif标签属性test:为必填属性,是一个Boolean类型值,决定是否显示if标签内容。该标签标准格式如下:

<s:if test=“表达式”>

……

</s:if> <s:elseif test=“表达式”>

……

</s:elseif>

 iterator(迭代) 作用:用于遍历集合,数组或枚举值。该标签的属性如下:

 

拦截器(Interceptor)是动态拦截Action调用的对象,类似于Servlet中的过滤器。在执行Action的业务逻辑处理方法之前,Struts2会首先执行struts.xml中引用的拦截器。

 

拦截器的概念:拦截器是struts2的一个重要特性。Struts2框架的大多数核心功能都是通过拦截器来实现的,像避免表单重复提交、类型转换、对象组装、验证、文件上传等,都是在拦截器的帮助下实现的。拦截器之所以称为“拦截器”,是因为它可以在Action执行之前和执行之后拦截调用。

拦截器的作用:Struts2将它的核心功能放到拦截器中实现,而不是分散到Action中实现,有利于系统的解耦,使得功能的实现类似于个人电脑的组装,变成了可插拔的,需要某个功能就“插入”一个拦截器,不需要某个功能就“拔出”一个拦截器。你可以任意组合拦截器来为Action提供附加的功能,而不需要修改Action的代码。

 

拦截器栈

  Struts2拦截器栈就是将拦截器 按一定的顺序联结成一条链。在访问被拦截的方法或字段时,Struts2拦截器链中的拦截器就会按其之前定义的顺序被调用。

posted on 2017-07-19 17:10  濯墨染半夏  阅读(198)  评论(0)    收藏  举报