Struts2.0标签语法


Warning: Undefined array key "HTTP_REFERER" in /www/wwwroot/prod/www.enjoyasp.net/wp-content/plugins/google-highlight/google-hilite.php on line 58

得到action, request, session传来的数据
action? #property
<s:property value=”#session[‘key’]”/>?? 或 <s:property value=”#session.key”/>?

<s:select list=”#request.allModules” listKey=”every” listValue=”name” name=”powerInfo.fid”/>

${sessionScope.key}?? //注:struts2.0标签中若用EI表达式,可能会得不到值

Struts2.0标签 实现了JSTL + EI? 功能

非UI
1,选择
<s:if test=””></s:if>
<s:elseif test=””></s:elseif>
<s:else></s:else>—–这3个标签一起使用,表示条件判断
<s:if test=”#session[‘key’]==null”>?

2,循环
<s:iterator id=”book” value=”books” status=”index”>?

<!—输出当前元素的属性–>?
<s:property value=”property”/>?

<!—输出当前迭代元素的索引–>?
<s:property value=”#index.index”/>?

<!—输出当前迭代了几个元素–>?
<s:property value=”#index.count”/>??

<!—返回当前迭代元素的索引是否为奇数–>?
<s:property value=”#index.odd”/>??

<!—返回当前迭代元素的索引是否为偶数–>?
<s:property value=”#index.event”/>?

<!—返回当前元素是否为第一个–>?
<s:property value=”#index.first”/>?

<!—返回当前元素是否为最后一个–>?
<s:property value=”#index.last”/>?

</s:iterator>?
UI
1,URL
(1)? <s:url value=”editGadget.action”/>????????????? 区别于:<s:a href=”index.jsp”> <s:a href=””></s:a>—–超链接,类似于html里的<a></a>

(2)?? <s:url action=”showBook”>
??? <s:param name=”author” value=”‘yeeku'” />
</s:url>

(3)?? <s:url id=”url” action=”preModifyCategoryName” includeParams=”get” namespace=”/category”>
??? <s:param name=”categoryId” value=”%{categoryId}”/>
?</s:url>

注:<s:actionerror/>—–如果action的errors有值那么显示出来
<s:actionmessage/>—–如果action的message有值那么显示出来

2,下拉框
(1) <s:combobox label=”请选择您喜欢的图书” theme=”css_xhtml” labelposition=”top”
list=”{‘Spring2.0宝典’ , ‘轻量级J2EE企业应用实战’ , ‘基于J2EE的Ajax宝典’}”
size=”20″ maxlength=”20″ name=”book”/>

与<s:select …/>标签不同的是,对于下面的下拉列表,无需指定listKey和listValue属性,因为此处的下拉列表,不再用于发送请求参数,而仅仅是用于辅助输入,因此该下拉列表的value没有任何意义
(2) Select
?List
<s:select name=”b” label=”请选择您喜欢的图书” labelposition=”top” multiple=”true”
??? list=”#bs.books”
??? listKey=”author”
??? listValue=”name”/>
Map
<s:select name=”b” label=”请选择您想选择出版日期” labelposition=”top”
??? list=”#{‘Spring2.0宝典’:’2006年10月’ , ‘轻量级J2EE企业应用实战’:’2007月4月’ , ‘基于J2EE的Ajax宝典’:’2007年6月’}”
??? listKey=”key”
??? listValue=”value”/>

<tr>
??? <td align=”center”>父权限</td>
??? <td align=”center”>
??? <s:select theme = “simple” label = “父权限”? list=”#request.allModules” listKey=”id” listValue=”name” name=”powerInfo.fid”/>
???? </td>???
?</tr>???????? //加theme = “simple”代表只生成一个简单的select,不用其自动生成<tr>之类, label就是在自动生成的情况下指示前td名称
????????????????? 注:listKey代表<option value>中的value值,?????? listValue 为<option>listValue</option>之间的数据

3,多个checkbox
(1) List
<s:checkboxlist name=”a” label=”请选择您喜欢的图书” labelposition=”top”
list=”{‘Spring2.0宝典’ , ‘轻量级J2EE企业应用实战’ , ‘基于J2EE的Ajax宝典’}”/>

<s:checkboxlist name=”b” label=”请选择您喜欢的图书” labelposition=”top”
list=”#bs.books”
listKey=”name”
listValue=”author”/>
(2)Map
<s:checkboxlist name=”b” label=”请选择您想选择出版日期” labelposition=”top”
list=”#{‘Spring2.0宝典’:’2006年10月’ , ‘轻量级J2EE企业应用实战’:’2007月4月’ , ‘基于J2EE的Ajax宝典’:’2007年6月’}”
listKey=”key”
listValue=”value”/>

4, s:radio生成多个单选框
<s:radio name=”c” label=”请选择您喜欢的图书” labelposition=”top”
list=”#bs.books”
listKey=”author”
listValue=”name”/>

5 s:optiontransferselect来生成可移动列表项的下拉列表框 , s:optgroup生成下拉选择框的选项组
s:updownselect生成可上下移动选项的下拉选择框 ,?????????????? s:doubleselect生成级联下拉列表框
s:tree和s:treenode标签生成静态树 ,

<s:tree label=”计算机图书” id=”book” theme=”ajax”
showRootGrid=”true” showGrid=”true” treeSelectedTopic=”treeSelected”>
<s:treenode theme=”ajax” label=”李刚” id=”yeeku”>
<s:treenode theme=”ajax” label=”Spring2.0宝典” id=”spring”/>
<s:treenode theme=”ajax” label=”轻量级J2EE企业应用实战” id=”lightweight”/>
<s:treenode theme=”ajax” label=”基于J2EE的Ajax宝典” id=”ajax”/>
</s:treenode>
<s:treenode theme=”ajax” label=”David” id=”David”>
<s:treenode theme=”ajax” label=”JavaScript: The Definitive Guide” id=”javascript”/>
</s:treenode>
<s:treenode theme=”ajax” label=”Johnson” id=”Johnson”>
<s:treenode theme=”ajax” label=”Expert One-on-One J2EE Design and Development” id=”j2ee”/>
</s:treenode>
</s:tree>

7, s:append标签拼接两个集合
<s:append id=”newList”>
<s:param value=”{‘Spring2.0宝典’,’轻量级J2EE企业应用实战’,’基于J2EE的Ajax宝典’}” />
<s:param value=”{‘新东方IT培训’, ‘东方标准职业教育’}” />
</s:append>

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

<s:generator val=”‘Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'”
separator=”,” id=”books” count=”2″/>
${books} 代表一个Iterator?? s:iterator>

<s:generator val=”‘Spring2.0宝典,轻量级J2EE企业应用实战,基于J2EE的Ajax宝典'” separator=”,”>
<s:iterator status=”st”>
<tr <s:if test=”#st.odd”>style=”background-color:#bbbbbb”</s:if>>
<td><s:property/></td>
</tr>
</s:iterator>
</s:generator>

9,<s:datetimepicker></s:datetimepicker>—–日期输入框,
<s:file></s:file>—–文件上传
<s:form action=””></s:form>—–获取相应form的值
<s:text name=””></s:text>—–I18n文本信息
<s:textarea></s:textarea>—–文本域输入框
<s:textfield></s:textfield>—–文本输入框