一、数据标签
1、property 标签:
得到‘Value’的属性,如果value没提供,默认为堆栈顶端的元素。
参数:
名称 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
default | 否 | String | 如果属性是null则显示的default值 | |
escape | 否 | true | Booelean | 是否escape HTML |
value | 否 | 栈顶 | Object | 要显示的值 |
id | 否 | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |
例子:
<s:property/><!-- 根对象的属性 -->
<s:property value="num1"/>,<!-- 取根对象最上面的对象的属性 -->
<s:property value="cal2.num1"/>, <!-- 取根对象的cal2对象的num1属性 -->
<s:property value="#request.cal2.num1"/><!--取非根对象cal2的num1属性值 -->
2、set 标签:
set标签赋予变量一个特定范围内的值。当希望给一个变量赋一个复杂的表达式,每次访问该变量而不是复杂的表达式时用到。
参数:
名称 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
name | 是 | String | 变量名字 | |
scope | 否 | String | 变量作用域,可以为application, session, request, page, 或action | |
value | 否 | Object/String | 将会赋给变量的值 | |
id | 否 | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |
例子:
在ognl上下文的根对象中取result值,赋值给test1
<h3>set</h3>
<s:set var="test1" value="result"></s:set>
${test1}.${requestScope.test1 }
3、push 标签:
push就是将你需要的值放到栈顶。便于页面获取 。
例如:
<s:push value="result">
4、param 标签:
子标签 :两种赋值方式:ognl表达式,字符串-
注1:它是子标签
注2:url/action
参数:
名称 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
name | 否 | String | 参数名 | |
value | 否 | String | value表达式 | |
id | 否 | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |
5、date标签:
获取时间的标签:
例子:
<%
request.setAttribute("currentDate",new Date());
%>
<s:date name="#request.currentDate" format="yyyy-MM-dd"/>
6、debug 标签:
用来调试代码,看其中的属性,参数,栈顶等:
样式如下:
7、url :
没有发请求,只为了生成url链接地址
例子:
<!-- 生成地址所用,注意与a标签区分 -->
<s:url namespace="/sy" action="tagAction" var="test3"></s:url>
<s:property value="#test3"/>
<!-- a 标签 -->
<a href=' <s:property value="#test3"/>'>xxx</a>
<s:a href="%{#test3}">aaa</s:a>
8、action :
再发一次请求 是为了调后台模块代码,拿数据
例子:
<s:action name="tagAction" namespace="/sy" var="test2"></s:action>
<s:property value="#test2.cal2"/>
二:控制标签:
1、 iterator标签:
相当于以前学的foreach 标签,用于遍历集合:
参数:
名称 | 必需 | 默认 | 类型 | 描述 |
---|---|---|---|---|
status | 否 | String | 如果设置此参数,一个IteratorStatus的实例将会压入每个遍历的堆栈 | |
value | 否 | Object/String | 要遍历的可枚举的(iteratable)数据源,或者将放入新列表(List)的对象 | |
id | 否 | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |
例子:
<%
request.setAttribute("names",new String[]{"gay","ls","ww"});
%>
<ul>
<s:iterator var="v" value="#request.names">
<li>
<s:property value="#v"/>
</li>
</s:iterator>
</ul>
结果:![在这里插入图片描述](https://img-blog.csdn.net/20181013091350515?watermark/2/text/aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQxMzIwMTA1/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70)
2、if/elseif/else 标签:
用来执行判断的:
参数:
名称 | 必需 | 默认 | 类型 | 描述 | 备注 |
---|---|---|---|---|---|
test | 是 | Boolean | 决定标志里内容是否显示的表达式 | else标志没有这个参数 | |
id | 否 | Object/String | 用来标识元素的id。在UI和表单中为HTML的id属性 |
例子:
<%
request.setAttribute("score",new Integer(70));
%>
<s:if test="#request.score>80">
A
</s:if>
<s:elseif test="#request.score>60">B</s:elseif>
<s:else>C</s:else>
结果:B
三、表单标签:
1、from:
例子:
action 访问后台数据
<s:form namespace="" action=""></s:form>
2、textfield: 文本框
例子:
name:属性名, label:文本框前的标题名
<s:textfield label="姓名" name="uname"></s:textfield>
3、radio :单选框
例子:
1、第一种方式:默认选中男
<s:radio list="{'男','女'}" label="性别" name="sex" value="'男'"></s:radio>
2、第二种方式:默认选中女
<s:radio list="#{1:'男',2:'女'}" label="性别" name="sex" value="2"></s:radio>
4、select 下拉框:
例子:
<s:select label="部门选择" list="#{1:'人员部门',2:'公关部门',3:'文艺部门' }" name="deptname"></s:select>
5、checkbox 复选框,两种:
例子:
1、单选复选框,返回一个true/false
<s:checkbox label="是否已婚" name="married"></s:checkbox>
2、多选复选框,返回一个结果集。
<s:checkboxlist label="爱好" name="hobby" list="#{1:'吃饭',2:'睡觉',3:'看电视' }"></s:checkboxlist>
6、textarea 文本域:
例子:
<s:textarea name="remark" label="个人简介"> </s:textarea>
7、hidden 隐藏域传值:
例子:
<s:hidden name="hd_name" value="20"></s:hidden>
8、submit 提交:
例子:
<s:submit value="提交"></s:submit>
然后这就是一个简单的form表单
四: 标签的公共属性:
var 将值保存到上下文(ActionContext)中的一个key
注意:
%{str}:str会被强制转换成OGNL表达式计算
以上最最重要的是通过debug标签去拿值