struts 标签库注解

时间:2022-10-14 11:30:51

在struts2中有着一套像html一样的标签,俗称struts2标签,大多数公司使用ssh都是使用html标签,但为了保持项目的统一性,有的公司还是使用的struts2的标签,下面是一些常用的struts2标签:

 a 

 

a标签创建一个HTML超链接,等价于HTML 的<a  href=""....

示范代码:

<s:a href="login.action">登陆</s:a>

 action 

 

使用action标签 可以允许在JSP页面中直接调用Action。

范例如下:

<s: action   name="tag2"  executeResult="false" />

 actionerror 

 

这个标签负责输出错误信息到客户端。
示范代码:

Action代码如下:
public String execute()
{
  
addActionError("第一条错误消息!"); 
  
addActionError("第二条错误消息!");

return
SUCCESS;
}....
JSP中:<s:actionerror/>

 actionmessage 

 

这个标签负责输出提示信息到客户端,例子如下:

Action代码如下:
public String execute()
{
  
addActionMessage("第一条普通消息!"); 
  
addActionMessage("第二条普通消息!"); 
   return SUCCESS;
}
JSP:<s:actionmessage />

append 

 

用来做iterator标签的辅助,将不同iterator中的内容合在一个iterator中。
例子:
<s:append
id="myAppendIterator">
    
<s:param value="%{myList1}" />
    
<s:param value="%{myList2}" />
    
<s:param value="%{myList3}" />
</s:append>
<s:iterator
value="%{#myAppendIterator}">
    
<s:property />
</s:iterator>

 bean 

 

bean标签 用于创建一个JavaBean的实例。

示范样例:

<s:bean  
name="lee.Person"  id=“p”>
<!--使用Param标签为lee。Person类的实例传入参数-->

<s:param  
name="name" 
value="'yeeku'"/>
<s:param  
name="age"  
value="29"/>
</s:bean>

 checkbox 

 

checkbox标签输出一个HTML复选框,等价于HTML代码:<input
type="checkbox" .../>。

示范代码:

<s:checkbox label="性别" name="user.sex" value="true" fieldValue="dddd"/>

 checkboxlist 

 

标签输出一个复选框。

示范代码:
<s:form>
   
<s:checkboxlist name="interest"
list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>
</s:form>

combobox 

<select id="inservicemajor"
name="talent.inservicemajor"></select>

combobox标签生成一个单行文本框和下拉列表框的结合。

示范代码:
<s:combobox label="请选择您喜欢的图书" theme="css_xhtml"
labelposition="top"
        list="{'Spring2.0'
, 'J2EE' , 'Ajax'}"
        size="20"
maxlength="20" name="book"/>

 conponent 

 

conponent标签用于使用自定义标签。因为使用自定义组件还是基于主题,模板管理的,因此在使用component标签,常常需要指定如下3个属性:

theme:自定义组件所使用的主题,默认使用xhtml主题。
templateDir:指定自定义组件的主题目录,默认使用系统的主题目录,即template目录。
template:指定自定义组件所使用的模板。

示范代码:
<s:component
template="mytemplate.jsp">
<s:param name="list" value="{'Spring2.0' , 'J2EE' ,
'Ajax'}" />
</s:component>

date 

 

date标签 用于格式化输入一个日期,还可以计算指定日期和当前时刻之间的时差。
示范代码:

<s:date  name="#attr.now"  
format="dd/MM/yyyy" 
nice=“true”/>

datetimepicker 

 

datetimepicker标签就是生成一个有日期控件的文本输入框。它有一个前提就是要在<head></head>内加一个"<s:head
theme="ajax"
/>",然后可以在form内加上该标签。

示范代码:

<s:datetimepicker name="user.birthday" label="出生日期" value="%{'2008-9-20'}"/>

 debug 

 

debug标签主要用于辅助测试,它在页面上生成一个超链接,通过该链接可以查看ValueStack和Stack Context
中的所有值信息。

使用debug标签只有一个id属性,这个属性仅仅是该元素一个引用id。

在页面上增加<s:debug/>标签,通过debug标签,可以看的系统中ValueStack离得全部信息,并可以看到Stack
Context中的属性。

示范代码:

<s:debug></s:debug>

//直接在jsp页面上面添加这样的标签,就可以生产一个查看debug信息的链接

 div 

 

div是struts2
ajax中最基础的标签,其他的标签均和div有关系。div的最大的用途就是可以异步的更新div中的内容。这里写一些div基本的应用,其他的等写别的标签的时候再写。

示范代码:
<s:div href="%{url}">Initial
Content</sx:div>
<!--最简单的例子,从指定的url获取信息更新自己的内容-->

 doubleselect 

 

doubleselect标签输出关联的两个HTML列表框,产生联动效果。
<s:doubleselect
       
label="请选择所在省市" name="province" list="provinces" listKey="id"
       
listValue="name" doubleList="cities"
       
doubleListKey="id" doubleListValue="name"
       
doubleName="city" headerKey="-1"
       
headerValue="--- 请选择 ---"
       
emptyOption="true" />

 else 

 

else标签用来控制基本的条件处理流程,通常和if、elseif标签连用。

例子
<s:if test="%{false}">
   
<div>Will Not Be
Executed</div>
</s:if>
<s:elseif test="%{true}">
   
<div>Will Be
Executed</div>
</s:elseif>
<s:else>
   
<div>Will Not Be
Executed</div>
</s:else>

elseif 

 

elseif标签用来控制基本的条件处理流程,通常和if标签连用。

例子

<s:if
test="%{false}">

...</s:if>

<s:elseif
test="%{true}">

<div>Will Be
Executed</div>

</s:elseif>

<s:else>

...</s:else>

 fielderror 

 

fielderror标签输出action的fieldErrors属性保存的字段错误,fieldErrors是一个map类型的属性。

示范代码:

<s:fielderror/>

 file 

 

file标签输出一个HTML文件选择框,等价于html代码:<input
type="file" .../>。

示范代码:
<s:file name="uploadfile" accept="text/*"
/>
<s:file name="uploadfile"
accept="text/html,text/plain" />

 form 

 

form标签输出一个HTML from

例子:

<s:form action="exampleSubmit"
method="post"
enctype="multipart/form-data">

<s:submit  
/> 
    
<s:reset  
/> 
</s:form>

可以上传文件的form。

generator 

 

使用generator标签可以将指定字符串按指定分隔符分成多个子串,临时生成的多个子串可以使用iterator标签来迭代输出。可以这样理
解:generator将一个字符串转化成一个集合。在该标签的标签体内,整个临时生成的集合将位于ValueStack的顶端,蛋一旦该标签结束,该集
合将被移出ValueStack。

 head 

 

head标签主要用于成生HTML主要页面的HEAD部分。国为有些主题需要包含特定的CSS和javascript代码,而该标签则用于生成对这此CSS和javaScript代码的引用。

示范代码:

<head>
<title>page
1</title>
<s:head/>
</head>

hidden 

 

hidden标签输出一个HTML隐藏表单元素,等价于HTML代码:<input
type="hidden" .../>。

在xhtml主题下,hidden标签与其他的标签不一样,hidden标签并不输出表行。xhtml主题直接从simple主题继承了

hidden.ftl模板。

示范代码:

<s:hidden name="id"
value="s"/>

 i18n

 

该标签用于加载资源包到值堆栈。它可以允许text标志访问任何资源包的信息,而不只当前action相关联的资源包。

示范代码:

<s:i18n
name="ApplicationMessages"> 
    
<s:text name="HelloWorld"
/> 
</s:i18n>

 if 

 

If标签用来控制基本的条件处理流程,通常和else标签或者elseif标签连用。

例子:

<s:if
test="%{false}">

<div>Will Not Be
Executed</div>

</s:if>

include 

 

include标签 用于将一个JSP页面,或者一个Servlet包含到本页面中。

示范代码:

<h2>使用s:include标签来包含目标页面</h2>

<s:include  
value="include-file.jsp"/>

<!--使用include标签来包含其他页面,并且传入参数-->

<s:include  
value="include-file.jsp">

<s:param  name="author" 
value="'yeeku'" />

</s:include>

 inputtransferselect 

 

获取form的一个输入

 iterator 

 

迭代处理一个java.util.Connection或者java.util.Iterator对象

例子:

<s:iterator value="users"
status="userStatus">
 <s:property value="fullName"
/>
 <s:if
test="!#userStatus.last">,</s:if>

</s:iterator>

label 

 

xhtml主题下的label 标签输出两个
HTML的label标签(simple主题下的label标签只输出一个HTML
label标签)。分别位于一行的两列,左列的label标签器提示作用,右列的label标签用于显示只读的action属性数据。

示范代码:

<s:label label="用户名"
name="user.username"/>

 merge 

 

合并遍历集合出来的值,与<s:append>标签用法相似。

例子:

<s:merge
id="list">
    <s:param
value="#request.list1"/>
    <s:param
value="#request.list2"/>
    <s:param
value="#request.list3"/>
    <s:param
value="#request.list4"/>
   </s:merge>

<s:iterator
value="%{list}">
        <s:property/><br>

</s:iterator>

optgroup 

 

optgroup标签用于生成一个下拉列表框的选项组,因此,该标签必须放在<s:select>标签中使用,一个下拉列表框中可以包含多个选项组,因此可以在一个<s:select>标签中使用多个<s:optgroup>标签。

<s:select label="选择您喜欢的图书"
name="book"
list="#{'Spring2.0':'李刚','J2EE':'李','Ajax宝典':'李'}"
    
listKey="value"
 listValue="key">
   <s:optgroup
label="Rod Johnson"
          
list="#{'Expert One-on-One J2EE Design and
Development':'Johnson'}"
    
listKey="value"
    
listValue="key"/>
   <s:optgroup
label="David Flanagan"
          
list="#{'JavaScript: The Definitive Guide':'David'}"
    
listKey="value"
    
listValue="key"/>
</s:select>

optiontransferselect 

 

optiontransferselect标签创建一个选项转移列表组建,它由两个<select>标签以及它们之间的用于将选项在两个<select>之间相互移动的按钮组成。表单提交时,将提交两个列表框中选中的选项。

示范代码:
<s:optiontransferselect
   
label="最喜爱的图书"
       
name="javaBook"
       
list="{'《Java Web开发详解》', '《Struts 2深入详解》', '《Java快速入门》'}"
       
doubleName="cBook"
       
doubleList="{'《VC++深入详解》', '《C++ Primer》',
'《C++程序设计语言》'}"/>

param 

 

param标签 主要用于为其他标签提供参数

用法:
<param 
name="color"  value="blue" />
这里color参数的值是,blue对象的值----如果blue对象不存在,则color为null。

password 

 

<s:password>标签类同于HTML的<input
type=”password”
…>,其name和label类同于<s:textfield>

例子:

<s:password name="password"
label="密码"/>

 property
 

 

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

例子:

<s:property value="username"
default="游客"/>

取出栈顶对象(通常是action)的username
属性并输出,如果没有找到username属性,那么输出“游客”。

push 

 

push标签用于将某个值放到ValueStack的栈顶,可以跟简单的访问该值。
示范样例:
<s:bean 
name="lee.Person"  id="p">
  
<s:param  
name="age"  value="29"/>
</s:bean>
<s:push  
value="#p">
   
<s:property  
value="name"/>
   
<s:propery  
value="age"/>
</s:push>

 radio
 

 

radio标签的用法与checkboxlist的用法几乎完全相同,一样可以指定label, list,
listKey, listValue等属性。

示范代码:
<s:radio name="c" label="请选择您喜欢的图书"
labelposition="top"
list="#bs.books"
listKey="author"
listValue="name"/>

reset 

 

reset标签输出一个重置按钮。

示范代码:
<s:reset
value="重置"></s:reset>

<s:reset
type="button" label="重置"></s:reset>

select 

 

s:select
标签输出一个下拉列表框,相当于HTML代码中的<select/>

示范代码:
<s:form>
   
<s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"/>
</s:form>

set 

 

set标签是将某个值放到指定范围内, 比如说 student.teacher.parent.age
每次访问这个属性不仅性能低,而且代码可读性很差,为了解决这个问题,可以将这个值设置为一个新值,并且放入指定范围内。
使用示范:
<s:set value="#p" name="test"/>
<s:property value="#test.name"/>
<br>
<s:property value="#test.age"/>
<br>

sort 

 

对一个可以迭代的对象进行排序操作。

<s:sort comparator="myComparator"
source="myList">
    
<s:iterator>
    
<!-- do something with each sorted elements
-->
    
<s:property value="..." />
    
</s:iterator>
</s:sort>

 submit 

 

Submit标签输出一个按钮,submit标签和form标签使用可以提供异步表单提交功能。Submit标签可以输出以下三种类型的提交按钮:

Input: 等价于 HTML代码<input
type=”submit”>
Image: 等价于 HTML代码 <input
type="image">
Button:<button
type="submit"></button>

示范代码:
<s:submit
value="登陆"></s:submit>

subset 

 

递归iterator的一部分。
例子:

<s:subset
source="myList">

<s:iterator>

<s:property />

</s:iterator>

</s:subset>

tabbedPanel 

 

<s:tabbedPanel>标签,用来在HTML页面中生成类似于Windows程序的Tab页,从而可以在有限的空间中放置更多的内容。tabbedPanel标签生成的Tab页的内容可以是静态的,也可以是动态的。

示范代码:
<s:tabbedPanel id="tp1" closeButton="pane"
theme="ajax" doLayout="true"
selectedTab="second"     labelposition="left">

<s:div
id="first" label="第一个div" theme="ajax">
   
   静态的DIV
   
  </s:div>

<s:div
name="second" label="第二个div" theme="ajax" href="%{T}"
updateFreq="6000" delay="3000">
   
   3:每六秒钟刷新一次,但有三秒延迟

</s:div>

</s:tabbedPanel>

 text 

 

用于输出国际化消息,和i18n结合使用。

示范代码:

<s:i18n
name="ApplicationMessages"> 
    
<s:text name="HelloWorld"
/> 
</s:i18n>

textarea 

 

Textarea标签输出一个HTML多行文本输入控件,等价于HTML代码:<textarea
/>

示范代码:
<s:textarea
name="personal" cols="10" rows="5" label="个人简历"></s:textarea>

textfield 

 

Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码<input
type="text">

示范代码:
<s:form action="register"
method="post">
   
<s:textfield name="username"
label="用户名"></s:textfield>

</s:form>

 token 

 

token标签是用于防止多次提交的标签。避免了刷新页面时多次提交,如果需要该标签起作用,则应该在Struts2的配置文件中启用TokenInterceptor拦截器或TokenSessionStoreInterceptor拦截器。

示范代码:
<s:form>
<s:token/>
</s:form>

tree 

 

tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:

<s:tree label="图书" id="book"
theme="ajax"
showRootGrid="true" showGrid="true"
treeSelectedTopic="treeSelected">
   
<s:treenode theme="ajax" label="David"
id="David">
     <s:treenode
theme="ajax" label="JavaScript: The Definitive Guide"
id="javascript"/>
   
</s:treenode>
</s:tree>

treenode 

 

tree和treenode标签可以在页面生成一个树形结构,其中tree生成一个树形结构,treenode生成一个树节点。
示范代码:

<s:tree label="图书" id="book"
theme="ajax"
showRootGrid="true" showGrid="true"
treeSelectedTopic="treeSelected">
   
<s:treenode theme="ajax" label="David"
id="David">
     <s:treenode
theme="ajax" label="JavaScript: The Definitive Guide"
id="javascript"/>
   
</s:treenode>
</s:tree>

updownselect 

 

updownselect标签创建一个带有上下移动的按钮的列表框,可以通过上下移动按钮来调整列表框的选项的位置。
示范代码:
<s:updownselect name="a" label="请选择您喜欢的图书"
labelposition="top"
   
moveUpLabel="向上移动"
   
list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The
Definitive Guide'}"/>

url 

 

url标签
用于生成一个URL地址,可以通过param向url标签指定参数,从而指定URL发送请求参数。

示范代码:

指定action属性,且使用param传入参数的形式
<s:url  action="showbook">

<s:param 
name="author" 
value="'yeeku'">
</s:url>

struts 标签库注解的更多相关文章

  1. 在EL表达式或者Struts标签库中格式化日期对象,即将Date转换为yyyy-MM-dd格式

    一.EL表达式 首先,在jsp页面引入<fmt> tags,<%@ taglib prefix="fmt" uri="http://java.sun.c ...

  2. &lbrack;转&rsqb;Struts标签库详解

    本文转自:http://hi.baidu.com/xzkcz/blog/item/5cf9f91f01beb9f4e0fe0bd4.html   Struts提供了五个标签库,即:HTML.Bean. ...

  3. Struts标签库详解【3】

    struts2标签库详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri= ...

  4. Struts标签库详解,非常好的Struts标签详解

    Struts提供了五个标签库,即:HTML.Bean.Logic.Template和Nested. HTML 标签:         用来创建能够和Struts 框架和其他相应的HTML 标签交互的H ...

  5. Struts标签库详解【2】

    ==================================================================== 需要在head中用<s:head />标签 一.控 ...

  6. Struts标签库详解【1】

    struts2标签详解 要在jsp中使用Struts2的标志,先要指明标志的引入.通过jsp的代码的顶部加入以下的代码: <%@taglib prefix="s" uri=& ...

  7. struts的标签库出现Failed to load or instantiate TagExtraInfo class

    使用struts的标签库出现Failed to load or instantiate TagExtraInfo class 最近在使用struts标签库的时候,在eclipse开发环境中是正常的,放 ...

  8. 菜鸟学习Struts——bean标签库

    一.Struts标签库. Struts实际上包含了4个标签库:bean,logic,html,tiles bean:用来在属性范围中定义或取得属性的,同时可以读取资源文件信息 logic:替代JSTL ...

  9. 【转】Struts1&period;x系列教程(4):标签库概述与安装

    转载地址:http://www.blogjava.net/nokiaguy/archive/2009/01/archive/2009/01/archive/2009/01/archive/2009/0 ...

随机推荐

  1. String&period;format介绍

    java类中提供的一种方法:String.format(String format, Object ... args) 提供字符串格式化功能: 不同转换符实现不同数据类型到字符串的转换: %s--字符 ...

  2. 【学习笔记】【Foundation】集合Set

    不可变集合 NSSet :集合元素无顺序,没有索引号,元素不可重复. NSSet在功能上可看做是NSArray的父集,它是一个更通用的类. NSSet包含如下常用方法: setByAddingObje ...

  3. Android引入高速缓存的异步加载全分辨率

    Android引进高速缓存的异步加载全分辨率 为什么要缓存 通过图像缩放,我们这样做是对的异步加载优化的大图,但现在的App这不仅是一款高清大图.图.动不动就是图文混排.以图代文,假设这些图片都载入到 ...

  4. js格式化时间为JSON格式 ajax提交 后台处理

    var effectRow = new Object();if ($('#grd_infos').datagrid('getChanges').length) {    var update = $( ...

  5. Apache Beam实战指南 &vert; 手把手教你玩转大数据存储HdfsIO

    https://mp.weixin.qq.com/s?__biz=MzU1NDA4NjU2MA==&mid=2247494843&idx=2&sn=0dd20caec76e25 ...

  6. Visual Studio VS2010统计代码行数

    按CTRL+SHIFT+F (Find in files),勾上支持正则表达式,然后输入搜索内容: ^:b*[^:b#/]+.*$ 以上表达式的统计可做到:#开头和/开头或者空行都不计入代码量.如果需 ...

  7. Java SE之向上转型与向下转型

    package object; //向上转型-向下转型 public class Up_Down_convert { /* 向上转型 * * 1.上转型对象可以使用和操作子类继承或者重写的方法 * 2 ...

  8. 基于Apache的阿里云部署Node&period;js服务器&lpar;Windows环境&rpar;

    1 前言 由于nodejs项目对方开放了多个端口,而且阿里云上的Apache服务器(windows)已经挂载了网站,此时需要把此项目也挂上去,网上查询资料,方法略少,基本是基于nginx版本的. 2  ...

  9. 步步为营-23-通过GridView实现增删改

    说明:把xml中的数据放入到数据源list中然后显示到gridview中,参考上一节内容 1 UI页面 2创建student类 public class Student { public int ID ...

  10. DDD Quickly - 读书笔记

    读后感:关于领域驱动设计,过去多多少少用到一些.所以,这本精简版看起来很快,很多概念很熟悉,它帮助我把散乱的知识串起来.最后,Eric Evans谈到一点,本来软件的发展是向着处理复杂的业务逻辑走的, ...