一 通用标签
<1> 数据标签
1. property标签
用于获取一个值的属性,value属性如果没有指定,默认为堆栈顶端的元素.
<s:property value="result"/> <!-- 输出result属性的值 -->
-
set标签
为指定范围内的变量赋值
属性:value 指属性名<s:set var="test1" value="cal2"></s:set> <!--value 属性名 --> <s:property value="test1.num1"/>,<!-- 取不到值,标签代表的含义是从值栈中取test1.num1的属性值 ( 不存在)--> <s:property value="#test1.num1"/> <!-- 取到值,取的是非根的(不是valuestack下)num1属性值 -->
-
push标签 可用于修改页面
push值到堆栈中,方便应用.push标签表示弹栈,标签体中即可拿到弹栈内容,结束标签回归原样(
即弹栈之前的内容)
属性:value 要push到堆栈中的值<s:property/> <!-- 弹栈前默认值(即ValueStack栈顶的值) --> <!-- push表示弹栈,标签体中即可拿到弹栈内容,结束标签回归原样(即弹栈之前的内容) --> <s:push value="result"> <s:property/><!--200 --> </s:push> <s:property/><!-- 默认的栈顶值 -->
-
action 标签
通过指定命名空间和action名称 ,向后台请求数据,加载初始化数据使用
属性:name action名称
namespace 名称空间
var 将值保存到上下文(ActionContext)中的一个key<s:action name="tagAction" namespace="/sy" var="test2"></s:action> <s:property value="#test2.cal2"/>
-
param标签 属于子标签 通常配合action,url去使用
<s:url namespace="/sy" action=“tagAction” var=“test6”>
<s:param name=“test4”>result</s:param>
<s:param name=“test5” value=“result”></s:param>
</s:url><s:property value=“test6”/>
-
6.url标签 只为了生成URL地址所用 ,不会调后台
属性:
action: 名称
namespace:名称空间
var:取值是一个普通字符串。他会把action和namespace组成一个url作为value,把
var的取值作为一个key,存入contextMap中
<s:url namespace="/sy" action="tagAction" var="test3"></s:url>
<s:property value="test3"/> <!--输出 /T211_struts2_base/sy/tagAction.action -->
7.a标签
重点3: %{str}:str 会被强制转换成OGNL表达式计算
<a href='<s:property value="test3"/>'>nnn</a><!--可获取 不用的 -->
<s:a href='test3'>nn</s:a><!-- 错误的 -->
<s:a href='%{#test3}'>n</s:a> <!-- 正确的 强制转化成ognl表达式-->
url/param/a(重要~用来生成url链接的)
8.date标签的使用:
它是用于格式化输出日期
name属性:取值是一个ognl表达式,表示要格式化的日期对象
format属性:指定格式
var属性:取值是一个普通的字符串. 把格式化好的日期字符串作为value,把var的取
值作为key。存入contextMap中
<s:date name="#request.currentTime"/><!-- 2018-10-12 16:51:40 -->
<s:date name="#request.currentTime" format="yyyy-MM-dd"/><!-- 2018-10-12 -->
<2>控制标签
iterator/if/elseif/else
例子:
<%
request.setAttribute("currentTime", new Date());
request.setAttribute("names", new String[]{"张翊晗","张翊栩"});
request.setAttribute("score", new Integer(70));
%>
<h3 style="color: red;">控制标签</h3>
<h3>iterator/if/elseif/else</h3>
<s:iterator value="#request.names" var="name">
<li>
<s:property value="name"/>
</li>
</s:iterator>
<s:if test="#request.score>80">
A
</s:if>
<s:elseif test="#request.score>60">
B
</s:elseif>
<s:else>
C
</s:else>
二 UI标签
1.2.1 表单标签
主题:xhtml/simple
form表单
textfield文本框
radio单选框
select下拉框
textarea文本域
hidden隐藏标签
submit
<s:form name=“tagAction” namespace="/sy">
<s:textfield label=“姓名” name=“uname”></s:textfield>
<%-- <s:radio label=“性别” list="{‘男’,‘女’}" name=“sex” value="‘男’"></s:radio>
--%>
<s:radio label="性别" list="#{'1':'男','2':'女'}" name="sex" value="1"></s:radio><!-- value表示默认值 -->
<s:select label="爱好" list="#{'1':'sing','2':'dance','3':'piano'}" name="hobby"></s:select>
<!-- 单选复选框 往后台传值是boolean -->
<s:checkbox label="是否已婚" name="married"> </s:checkbox>
<!-- 多选复选框-->
<s:checkboxlist label="爱好" list="#{'1':'sing','2':'dance','3':'piano'}" name="xxx"></s:checkboxlist>
<s:textarea label="备注" name="mark">
<s:hidden name="a" value="b"></s:hidden>
</s:textarea>
</s:form>
1.2.2 非表单标签
-
标签的属性类型说明
String 字符串
Boolean true|false
Object
Object/String 传过去字符串,但会被认为是一个OGNL表达式进行计算%{str}:str会被强制转换成OGNL表达式计算
<s:a href="%{#url1}">bbb</s:a> -
标签的公共属性
var 将值保存到上下文(ActionContext)中的一个key