struts2标签具体解释
要在jsp中使用Struts2的标志,先要指明标志的引入。通过jsp的代码的顶部增加下面的代码:
<%@taglib prefix="s" uri="/struts-tags" %>
If elseif  else
描写叙述:
运行主要的条件流转。
參数:
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 备注 | 
| test | 是 |  | boolean | 决定标志里的内容是否显示的表达式 | else标志没有这个參数 | 
| id | 否 |  | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |  | 
样例:
<s:set name="age" value="61"/>
<s:if test="${age > 60}"> 
    老年人 
</s:if>
<s:elseif test="${age > 35}">
    中年人
</s:elseif>
<s:elseif test="${age > 15}" id="wawa">
    青年人
</s:elseif>
<s:else>
    少年
</s:else>
<s:set name="name" value="<%="'"+ request.getParameter("name")+"'" %>"/>
<%
  System.out.println(request.getParameter("name"));
 %>
<s:if test="#name=='zhaosoft'">
  zhaosoft here
</s:if>
<s:elseif test="#name=='zxl'">
  zxl here
</s:elseif>
<s:else>
  other is here 
</s:else>
Iterator(迭代)
描写叙述:用于遍历集合(java.util.Collection)或枚举值(java.util.iterator)
參数
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| status | 否 |  | String | 假设设置此參数,一个IteratorStatus的实例将会压入每个遍历的堆栈 | 
| value | 否 |  | Object/String | 要遍历的可枚举的(iteratable)数据源,或者将放入的新列表(List)的对想 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
I18n(国际化操作)
描写叙述:
载入资源包到值堆栈。它能够同意text标志訪问不论什么资源包的信息。而不仅仅当前的action相关联的资源包。
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| name | 是 |  | Object/String
   | 资源包的类路径(如com.xxxx.resources.AppMsg) | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
Include
描写叙述:包括一个servlet的输出(servlet或jsp的页面)
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| value | 时 |  | String
   | 要包括的jsp页面或servlet | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
param
描写叙述:属性是可选的,假设提供,会调用Component的方法,addParameter(String,Object),假设不提供,则外层嵌套标签必须实现UnnamedParametric接口。
Value的提供有两种方式,通过value属性或者标签中间的text,不同之处:
<s:param
name="name">zhaosoft</s:param>
參数会以String的格式放入statck
<s:param
name="name" value="zhaosoft"/>
该值会以java.lang.Object的格式放入statck
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| name | 否 |  | String | 參数名 | 
| value | 时 |  | String
   | value表达式 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
set
描写叙述:set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次訪问该变量而不是复杂的表达式时用到。其在两种情况下非常实用:复杂的表达式非常耗时(性能提升)或者非常难理解(代码的可读性提高)
參数:
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| name | 是 |  | String | 变量名字 | 
| scope | 否 |  | String
   | 变量作用域,能够为application,session,request,page,action | 
| value | 否 |  | Object/String | 将会赋给变量的值 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
Text
描写叙述:支持国际化信息的标签。国际化信息必须放在一个和当前action同名的resource bundle中,假设没有找到对应message,tag body将被当作默认的message,假设没有tag body,message的name会被作为默认message.
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| name | 是 |  | String | 资源属性的名字 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
url
描写叙述:该标签用于创建url,能够通过”param”标签提供request參数。
当includeParams的值是all或get,param标签中定义的參数将有优先权,也就是说其会覆盖其它同名參数的值。
UI标志
单行文本框
Textfield标签输出一个HTML单行文本输入控件,等价于HTML代码<input type=”text”>
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| maxlength | 否 | 无 | Integer | 文本输入控件能够输入字符的最大长度 | 
| readonly | 否 | false | Boolean | 当该属性为true时,不能输入 | 
| size | 否 | 无 | Integer | 指定可视尺寸 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
样例:
<s:form
action="register" method="post">
   <s:textfield name="username"
label="username"></s:textfield>
</s:form>
文本框区
Textarea标签输出一个HTML多行文本输入控件,等价于HTML代码:<textarea />
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| cols | 否 | 无 | Integer | 列数 | 
| rows | 否 | 无 | Integer | 行数 | 
| readonly | 否 | false | Boolean | 当该属性为true时,不能输入 | 
| wrap | 否 | false | Boolean | 指定多行文本输入控件是否应该换行 | 
| id | 否 |  | Object/String | 用来标识元素的id。在ui和表单中为HTML的id属性 | 
样例:
<s:textarea name="personal"
cols="10" rows="5" label="个人简历"></s:textarea>
下拉列表
s:select 标签输出一个下拉列表框,相当于HTML代码中的<select/>
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| list | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 | 
| listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value | 
| listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 | 
| headerKey | 否 | 无 | String | 设置当用户选择了header选项时,提交的的value,假设使用该属性,不能为该属性设置空值 | 
| headerValue | 否 | 无 | String | 显示在页面中header选项内容 | 
| emptyOption | 否 | false | Boolean | 是否在header选项后面加入一个空选项 | 
| multiple | 否 | false | Boolean | 是否多选 | 
| size | 否 | 无 | Integer | 显示的选项个数 | 
样例:
%@ page contentType="text/html;charset=GBK" %>
<%@ taglib prefix="s" uri="/struts-tags" %>
<h3>使用name和list属性,list属性的值是一个列表</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"/>
</s:form>
<h3>使用name和list属性,list属性的值是一个Map</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="#{1:'高中',2:'大学',3:'硕士',4:'博士'}"/>
</s:form>
<h3>使用headerKey和headerValue属性设置header选项</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"
       headerKey="-1" headerValue="请选择您的学历"/>
</s:form>
<h3>使用emptyOption属性在header选项后加入一个空的选项</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"
       headerKey="-1" headerValue="请选择您的学历"
       emptyOption="true"/>
</s:form>
<h3>使用multiple属性设置多选</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"
       headerKey="-1" headerValue="请选择您的学历"
       emptyOption="true"
       multiple="true"/>
</s:form>
<h3>使用size属性设置下拉框可显示的选项个数</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="{'高中','大学','硕士','博士'}"
       headerKey="-1" headerValue="请选择您的学历"
       emptyOption="true"
       multiple="true" size="8"/>
</s:form>
<h3>使用listKey和listValue属性,利用Action实例的属性(property)来设置选项的值和选项的内容</h3>
<s:form>
    <s:select label="最高学历" name="education"
list="educations"
       listKey="id" listValue="name"/>
</s:form
doubleselect标签
doubleselect标签输出关联的两个HTML列表框,产生联动效果。
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| list | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 | 
| listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value,该选项仅仅对第一个列表框起作用 | 
| listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项仅仅对第一个列表框起作用 | 
| headerKey | 否 | 无 | String | 设置当用户选择了header选项时,提交的的value,假设使用该属性,不能为该属性设置空值 | 
| headerValue | 否 | 无 | String | 显示在页面中header选项内容 | 
| emptyOption | 否 | false | Boolean |  | 
| multiple | 否 | false | Boolean | 是否多选 | 
| size | 否 | 无 | Integer | 显示的选项个数,该选项仅仅对第一个列表框起作用 | 
| doubleId | 否 | 无 | String | 指定第二个列表框的ID | 
| doubleList | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合 | 
| doubleListKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value,该选项仅仅对第二个列表框起作用 | 
| doubleListValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项仅仅对第二个列表框起作用 | 
| doubleSize | 否 | 无 | Integer | 选项个数 | 
| doubleName | 否 | 无 | String | 指定第二个列表框的name映射 | 
| doubleValue | 否 | 无 | Object | 第二个列表框的初始选种项 | 
实例:
<s:form name="test">
    <s:doubleselect
label="请选择所在省市" 
       name="province" list="{'四川省','山东省'}" doubleName="city" 
       doubleList="top == '四川省' ? {'成都市', '绵阳市'} : {'济南市', '青岛市'}" />
</s:form>
<s:form action="doubleselectTag">
    <s:doubleselect
            label="请选择所在省市"
            name="province"
            list="provinces"
            listKey="id"
            listValue="name"
            doubleList="cities"
            doubleListKey="id"
            doubleListValue="name"
            doubleName="city"
            headerKey="-1"
            headerValue="---------- 请选择 ----------"
            emptyOption="true" />
</s:form>
复选框
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| fieldValue | 是 | true | String | 指定在复选框选中时,实际提交的值 | 
复选框组,相应Action中的集合
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| list | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 | 
| listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value | 
| listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 | 
样例:checkboxlistTag.jsp
<%@ page contentType="text/html;charset=GBK"
%>
<%@ taglib prefix="s" uri="/struts-tags" %>
<s:form>
    <s:checkboxlist
name="interest" list="{'足球','篮球','排球','游泳'}" label="兴趣爱好"/>
</s:form>
单击复选框
文件选择组建
file标签输出一个HTML文件选择框。
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| accept | 否 | input | String | HTML accept属性,指出接受文件的MIME类型 | 
button
Submit标签输出一个button,submit标签和form标签使用能够提供异步表单提交功能。Submit标签能够输出下面三种类型的提交button:
Input: 等价于 HTML代码<input type=”submit”>
Image: 等价于 HTML代码 <input type="image">
Button:<button type="submit"></button>
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| type | 否 | input | String | 要使用的提交按钮的类型,有效值:input button image | 
| src | 否 | 无 | String | 为image类型的提交button设置图片地址。该属性对input和button类型的提交button无效 | 
| action | 否 | 无 | String | 指定处理提交请求的action | 
| method | 否 | 无 | String | 指定处理提交请求的action的方法 | 
实例
实例1.<s:submit type="image"
method="login" src="images/login.jpg"></s:submit>
页面输出:
<input type="image" alt="Submit" src="images/login.jpg" id="user__login" name="method:login" value="Submit"/>
实例2.<s:submit type="button" action="selectTag"
method="login" label="登陆"></s:submit>
页面输出:
<button type="submit" id="user_selectTag_login" name="action:selectTag!login" value="Submit">登陆</button>
Struts2提前定义的前缀:
1。method method:login
使用method前缀,来代替action默认的execute()方法的运行。
<s:form action="user">
   <s:textfield name="user.username"
label="username"></s:textfield>
   <s:textfield name="user.password"
label="password"></s:textfield>
   <s:submit value="登陆" name="method:login"></s:submit>
   <s:submit value="注冊" name="method:register"></s:submit>
</s:form>
注意:1。input类型的button,不能用label设置button上的文本,仅仅能用value
2、action前缀
使用action前缀,代替form标签指定的action,导向到还有一个action进行处理。
<s:form action="login">
   <s:textfield name="user.username"
label="username"></s:textfield>
   <s:textfield name="user.password"
label="password"></s:textfield>
   <s:submit value="登陆"></s:submit>
   <s:submit value="注冊" name="action:register"></s:submit>
</s:form>
2、redirect前缀
使用redirect前缀请求重定向到其它的url,甚至能够是web英语程序外部的url。
<s:form action="login">
   <s:textfield name="user.username"
label="username"></s:textfield>
   <s:textfield name="user.password"
label="password"></s:textfield>
   <s:submit value="登陆"></s:submit>
   <s:submit value="搜索" name="redirect:www.google.com"></s:submit>
</s:form>
2、redirect-action前缀
使用redirect-action前缀请求重定向到其它的action.
<s:form action="login">
   <s:textfield name="user.username"
label="username"></s:textfield>
   <s:textfield name="user.password"
label="password"></s:textfield>
   <s:submit value="登陆"></s:submit>
   <s:submit value="搜索" name="redirect-action:register"></s:submit>
</s:form>
reset标签
reset标签输出一个重置button
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| type | 否 | input | String | 要使用的重置按钮的内容,input、button | 
<s:reset value="重置"></s:reset>
<s:reset type="button" label="重置"></s:reset>
updownselect标签
updownselect标签创建一个带有上下移动的button的列表框,能够通过上下移动button来调整列表框的选项的位置。
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| list | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容 | 
| listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value | 
| listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容 | 
| headerKey | 否 | 无 | String | 设置当用户选择了header选项时,提交的的value,假设使用该属性,不能为该属性设置空值 | 
| headerValue | 否 | 无 | String | 显示在页面中header选项内容 | 
| emptyOption | 否 | false | Boolean | 是否在header选项后面加入一个空选项 | 
| multiple | 否 | false | Boolean | 是否多选 | 
| size | 否 | 无 | Integer | 显示的选项个数 | 
| moveUplabel | 否 |  | String | 设置向上移动button上的文本 | 
| moveDownLabel | 否 |  | String | 设置向下移动button上的文本 | 
| selectAllLabel | 否 |  | String | 设置向所有选择button上的文本 | 
| allowMoveUp | 否 | 无 | Boolean | 设置是否使用向上移动button | 
| allowMoveDown | 否 | 无 | Boolean | 设置是否使用向下移动button | 
| allowSelectAll | 否 | 无 | Boolean | 设置是否使用所有选择button | 
实例:
<s:form>
<!-- 使用简单集合来生成可上下移动选项的下拉选择框 -->
<s:updownselect name="a" label="请选择您喜欢的图书" labelposition="top"
    moveUpLabel="向上移动"
    list="{'Spring2.0宝典' , '轻量级J2EE企业应用实战' , 'JavaScript: The Definitive Guide'}"/>
    
    
<!-- 使用简单Map对象来生成可上下移动选项的下拉选择框 
     且使用emptyOption="true"添加一个空选项-->
<s:updownselect name="b" label="请选择您想选择出版日期" labelposition="top"
    moveDownLabel="向下移动"
    list="#{'Spring2.0宝典':'2006年10月' , '轻量级J2EE企业应用实战':'2007月4月' , '基于J2EE的Ajax宝典':'2007年6月'}"
    listKey="key"
    emptyOption="true"
    listValue="value"/>
    
<s:bean name="com.zhaosoft.ui.formtag.BookService"
id="bs"/>
<!-- 使用集合里放多个JavaBean实例来可上下移动选项的生成下拉选择框 -->
<s:updownselect name="c" label="请选择您喜欢的图书的作者" labelposition="top"
    selectAllLabel="所有选择" multiple="true"
    list="#bs.books"
    listKey="author"
    listValue="name"/>
</s:form>
package com.zhaosoft.ui.formtag;
public class BookService
{
    public Book[] getBooks()
    {
       return new Book[]
       {
           new Book("Spring2.0宝典","zhaosoft"),
           new Book("轻量级J2EE企业应用实战","zhaosoft"),
           new Book("基于J2EE的Ajax宝典","zhaosoft")
       };
    }
}
optiontransferselect标签
optiontransferselect标签创建一个选项转移列表组建,它由两个<select>标签以及它们之间的用于将选项在两个<select>之间相互移动的button组成。表单提交时,将提交两个列表框中选中的选项。
| 名称 | 必需 | 默认 | 类型 | 描写叙述 | 
| list | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设list的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项仅仅对第一个列表框起作用 | 
| listKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value,该选项仅仅对第一个列表框起作用 | 
| listValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项仅仅对第一个列表框起作用 | 
| headerKey | 否 | 无 | String | 设置当用户选择了header选项时,提交的的value,假设使用该属性,不能为该属性设置空值 | 
| headerValue | 否 | 无 | String | 显示在页面中header选项内容 | 
| multiple | 否 | false | Boolean | 是否多选 | 
| size | 否 | 无 | Integer | 显示的选项个数,该选项仅仅对第一个列表框起作用 | 
| doubleId | 否 | 无 | String | 指定第二个列表框的ID | 
| doubleList | 是 | 无 | Cellection
  Map Enumeration Iterator array | 要迭代的集合,使用集合中的元素来设置各个选项,假设doubleList的属性为Map则Map的key成为选项的value,Map的value会成为选项的内容,该选项仅仅对第二个列表框起作用 | 
| doubleListKey | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的value,该选项仅仅对第二个列表框起作用 | 
| doubleListValue | 否 | 无 | String | 指定集合对象中的哪个属性作为选项的内容,该选项仅仅对第二个列表框起作用 | 
| doubleHeaderKey | 否 | 无 | String | 设置当用户选择了header选项时,提交的的value,假设使用该属性,不能为该属性设置空值 | 
| doubleHeaderVale | 否 | 无 | String | 显示在页面中header选项内容 | 
| doubleEmptyOption | 否 | 无 | String | 是否在第二列表框的header后面加入一个空选项 | 
| doubleMultiple | 否 | true | Boolean | 是否多选 | 
| doubleSize | 否 | 无 | Integer | 选项个数 | 
| doubleName | 否 | 无 | String | 指定第二个列表框的name映射 | 
| doubleValue | 否 | 无 | Object | 第二个列表框的初始选种项 | 
| leftTitle | 否 | 无 | String | 左边列表框的标题 | 
| rightTitle | 否 | <- | String | 右边列表框的标题 | 
| addToLeftLable | 否 |  | String |  | 
| addToRightLable |  |  |  |  | 
| addAllToLeftLable |  |  |  |  | 
| addAllToRightLable |  |  |  |  | 
| leftUpLabel |  |  |  |  | 
| leftDownLabel |  |  |  |  | 
| rightUpLabel |  |  |  |  | 
| rightDownLabel |  |  |  |  | 
| allowAddToLeft |  |  |  |  | 
| allowAddToright |  |  |  |  | 
| allowAddAllToLeft |  |  |  |  | 
| allowAddAllToRight |  |  |  |  | 
| allowSelectAll | 否 | 无 | Boolean | 设置是否使用所有选择button | 
| allowUpdownOnLeft |  |  |  |  | 
| allowUpDownOnRight |  |  |  |  | 
样例:
<s:head/>
<s:form>
    <s:optiontransferselect
     label="最喜爱的图书"
        name="javaBook"
        list="{'《Java Web开发具体解释》', '《Struts 2深入具体解释》', '《Java高速入门》'}"
        doubleName="cBook"
        doubleList="{'《VC++深入具体解释》', '《C++ Primer》', '《C++程序设计语言》'}"/>
</s:form>
---------------------------
<s:form>
    <s:optiontransferselect
     label="最喜爱的图书"
        name="book1"
        leftTitle="Java图书"
        rightTitle="C/C++图书"
        list="{'《Java Web开发具体解释》', '《Struts 2深入具体解释》', '《Java高速入门》'}"
        headerKey="-1"
        headerValue="--- 请选择 ---"
        emptyOption="true"
        doubleName="book2"
        doubleList="{'《VC++深入具体解释》', '《C++ Primer》', '《C++程序设计语言》'}"
        doubleHeaderKey="-1"
        doubleHeaderValue="--- 请选择 ---"
        doubleEmptyOption="true"
        addToLeftLabel="向左移动"
        addToRightLabel="向右移动"
        addAllToLeftLabel="所有左移"
        addAllToRightLabel="所有右移"
        selectAllLabel="所有选择"
        leftUpLabel="向上移动"
        leftDownLabel="向下移动"
        rightUpLabel="向上移动"
        rightDownLabel="向下移动"/>
</s:form>
 
                    
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号