首先 要注意的是
struts2中tag支持jsp,freeMarker ,velocity
因此,tag也有三種形式
例如:
JSP下的form標(biāo)簽: <s:form action="example">
velocity的form標(biāo)簽: #sform ("action=example")
freeMarker下的form標(biāo)簽: <@s.form action="example">
下面以JSP使用的標(biāo)簽為例:
1 <s:head>
這個(gè)標(biāo)簽用在<head></head>中,
將會引入struts tag用到的一些css和js文件
需要注意的是,如果任何ui tag或者ajax tag的theme屬性值是ajax
那么<s:head>必須有theme屬性 并且它的值是ajax
這將會額外地引入與ajax相關(guān)的js文件,比如dojo.js
2 <s:form>
類似于struts 1.x 的<html:form>
validate屬性:默認(rèn)是false
如果設(shè)為true 那么struts2框架會自動生成一個(gè)javascript的驗(yàn)證方法,
并且根據(jù)validation.xml的配置客戶端驗(yàn)證。
如果這個(gè)頁面沒有<s:head>標(biāo)簽將會產(chǎn)生js錯(cuò)誤
namespace屬性:指定這個(gè)form需要提交到哪個(gè)namespace
3 <s:submit>
theme屬性:指明theme="ajax" 會使用ajax功能,通過異步方式傳輸數(shù)據(jù)
targets屬性:指定異步方式返回的數(shù)據(jù)顯示的位置 ,
例如<div id="div1"></div>....
<s:submit theme="ajax" targets="div1" name="nn"/>
formId屬性:允許遠(yuǎn)程提交表單,
即<s:submit>標(biāo)簽的位置并不在<s:form></s:form>范圍內(nèi)
indicator屬性:指定一個(gè)indicator,例如<img id="indicator" src=...
在使用異步方式的時(shí)候,會產(chǎn)生一個(gè)表示正在loading的小圖片
4 <s:autocompleter>自動填充器
theme屬性:如果theme值是simple,表示使用普通方式。
如果是ajax表示使用異步方式
list屬性:指定使用的數(shù)據(jù)集合。
它的值可以是action中的一個(gè)屬性,直接在標(biāo)簽中指定
例如:list="{'apple','banana','grape','pear'}"
indicator屬性: 指定一個(gè)indicator,theme屬性必須是ajax,否則沒有意義
href屬性:使用的數(shù)據(jù)集合從url中獲取,
例如href="%{exampleList}"表示使用了一個(gè)<s:url>已經(jīng)定義過的url:
<s:url id="exampleList">
searchType屬性:默認(rèn)是startstring,也可以指定為startword或者substring,
表示自動填充的查詢方式
delay屬性:指定動作等待多少毫秒
loadMinimumCount屬性:當(dāng)loadOnTextChange為true時(shí),
loadMinimumCount表示輸入了多少個(gè)字符后,才開始重新加載數(shù)據(jù)集合,
這時(shí)theme屬性必須是ajax,否則沒有意義
5 <s:actionerror />
作用大致相當(dāng)于struts 1.x中的 <html:errors/>
類似的還有<s:actionmessage />
6 <s:fielderror>
字段驗(yàn)證錯(cuò)誤的報(bào)錯(cuò)信息
<s:fielderror>
<s:param>field1</s:param>
<s:param>field2</s:param>
</s:fielderror>
表示只顯示field1,field2的錯(cuò)誤信息,
如果沒有<s:param/>表示顯示全部
錯(cuò)誤信息的內(nèi)容由action的.properties文件指定
7 <s:textfield/>
輸入框
label屬性:顯示一段文字,
例如<s:textfield label="find"/>會自動生成HTML代碼:find:<input type="text"/>
labelposition屬性:top/left,顯示label的位置,
可以使用top將文字顯示在輸入框的上面
默認(rèn)是left
8 <s:token />
生成一個(gè)令牌 ,防止用戶重復(fù)提交表單 感覺這個(gè)相對于struts1.x是個(gè)倒退