要在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="data:images/login.jpg"></s:submit>

页面输出:

<input type="image" alt="Submit" src="data: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>

注意:1input类型的button,不能用label设置button上的文本,仅仅能用value

2action前缀

使用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>

2redirect前缀

使用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>

2redirect-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>

struts2标签具体解释的更多相关文章

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

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

  2. Struts2框架具体解释

    在Struts2的Model-View-Controller模式实现下面五个核心组件: 动作-Actions 拦截器-Interceptors 值栈/OGNL 结果/结果类型 视图技术 Struts ...

  3. 浅谈struts2标签中的2个非经常常使用的标签的使用方法(radio和select)

    1.如图所看到的我们须要在前台的页面通过radio和select将相应的数据库中的数据显示到选项其中,这也是我们做项目中常常须要做的,动态的显示,而不是静态的显示. 首先我们须要在页面中导入strut ...

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

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

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

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

  6. Struts2(十)OGNL标签二与Struts2标签

    一.Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持.极大简化了视图页面的编写 不依赖任何表现层技术 Struts ...

  7. Struts2标签简介

    Struts2标签简介 Struts2标签的优势 标签库简化了用户对标签的使用 结合OGNL使用,对于集合.对象的访问功能非常强大 提供可扩展的主题.模板支持,极大简化了视图页面的编写 不依赖任何表现 ...

  8. OGNL和Struts2标签

    OGNL和Struts2标签 你使用过的OGNL 页面获取并输出Action属性<s:property value="userName"/> 页面中获取request保 ...

  9. s2-029 Struts2 标签远程代码执行分析(含POC)

    1.标签介绍 Struts2标签库提供了主题.模板支持,极大地简化了视图页面的编写,而且,struts2的主题.模板都提供了很好的扩展性.实现了更好的代码复用.Struts2允许在页面中使用自定义组件 ...

随机推荐

  1. 1701. Ostap and Partners(并查集-关系)

    1701 又是类似食物链的这一类题 这题是找与根节点的和差关系 因为0节点是已知的 为0  那么所有的都可以转换为与0的和差关系 可以规定合并的两节点 由大的指向小的 然后再更新和差关系 有可能最后有 ...

  2. hdu4619Warm up 2

    http://acm.hdu.edu.cn/showproblem.php?pid=4619 二分图匹配  最小点覆盖 = 最大匹配 #include <iostream> #includ ...

  3. 第一部分 Android MediaPlayer 概述

    [IT168 技术文档]本文主要介绍的是Android中很重要也最为复杂的媒体播放器(MediaPlayer)部分的架构.对于Android这样一个完整又相对复杂的系统,一个MediaPlayer功能 ...

  4. [原]Unity3D深入浅出 - GUI控件

    Unity的GUI类提供了丰富的界面控件,通过组合这些控件,完成和用户交互的界面. Lable:绘制文本和图片 Box:绘制一个图形框 Button:绘制一个响应单击事件的按钮 RepeatButto ...

  5. 弹出框页面中使用jquery.validate验证控件

    弹出框页面中使用jquery.validate验证控件有几个问题需要解决: 1,弹出框的提交事件完成后如何关闭弹出框页面? 2,提交不成功如何返回当前页? 3,如果知道验证事件成功? 之前笔者都是JS ...

  6. RPi 2B 自动发送获取的IP到固定邮箱

    /************************************************************************* * RPi 2B 自动发送获取的IP到固定邮箱 * ...

  7. codeforces 401D (数位DP)

    思路:很明显的数位dp,设dp[i][j] 表示选取数字的状态为i,模m等于j的数的个数,那么最后的答案就是dp[(1<<n)-1][0].状态转移方程就是,dp[i|(1<< ...

  8. FOR 循环 索引从n 开始

    RF 中FOR 循环默认是从0开始,如果想从任意n开始如下所示: 方法一: 结果,如你所愿输出1-6: 方法二,利用FOR遍历list来实现: 结果: 这里注意是输出1-9而不是1-10

  9. tomcat 容器中的UML架构图

  10. MySQL UNION 与 UNION ALL 语法与用法

    MySQL UNION 语法 MySQL UNION 用于把来自多个 SELECT 语句的结果组合到一个结果集合中.语法为: SELECT column,... FROM table1 UNION [ ...