<%@page import="java.util.Date"%>
<%@ page language="java" contentType="text/html; charset=UTF-8"
pageEncoding="UTF-8"%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>通用标签</title>
</head>
<body>
<h3 style="color: red;">数据标签</h3>
<!-- 在ognl上下文的根对象中去result的值,赋给test1 存在非根对象的requesScope中 -->
<!-- 如果用的是数字如12则直接输出12 -->
<h3>set</h3>
<s:set var="test1" value="result"></s:set>
${test1 },
${requestScope.test1 }
<h3>property</h3>
<!-- 默认取的是栈顶 cal1(model) -->
<s:property/>,
<!-- 取的是根对象的最上面的对象的属性 -->
<s:property value="num1"/>,
<!-- 取的是非根对象request的cal2对象的num1属性值 -->
<s:property value="#request.cal2.num1"/>
<!-- push 就是将你需要的值放到栈顶,便于页面获取-->
<h3>push</h3>
<!-- 输出cal1 -->
<s:property/>
<s:push value="result">
<!-- 输出result result已经被弹到栈顶 -->
<s:property/>
</s:push>
<!-- 输出result result又被压到原来的位置 -->
<s:property/>
<!-- action通常用来请求后台获取初始化数据的 -->
<h3>action</h3>
<!-- 取的是/sy模块中的tagAction中的数据赋值给test2 test2是非根对象 -->
<s:action name="tagAction" namespace="/sy" var="test2"/>
<s:property value="#test2.cal2"/>
<!-- url标签的为了生成地址所用的,注意与a标签区分 -->
<h3>url</h3>
<s:url var="test3" action="tagAction" namespace="/sy"/>
<s:property value="#test3"/>
<a href='<s:property value="#test3"/>'>asdf</a>
<!-- s标签中的a标签href是放String类型的 要取到数据必须用%{}括起来才能取到ognl中的数据 -->
<s:a href="%{#test3}">aaaa</s:a>
<!-- 请求数据时带参数 -->
<h3>param</h3>
<!-- 两种赋值方式:ognl表达式 , 字符串 -->
<s:url var="test4" action="tagAction" namespace="/sy">
<s:param name="test5">555</s:param>
<s:param name="test6" value="num1"></s:param>
</s:url>
<s:property value="test4"/>
<h3>date</h3>
<%
request.setAttribute("currentDate", new Date());
request.setAttribute("score", new Integer(70));
request.setAttribute("names", new String[]{"gay","ls","蹲坑"});
%>
<!-- 展示数据 可以控制日期的显示格式 -->
<s:date name="#request.currentDate" format="yyyy-MM-dd"/>
<h3>debug</h3>
<!-- 可以查看ognl的上下文内容 -->
<s:debug/>
<h3 style="color: red;">控制标签</h3>
<h3>iterator/if/elseif/else</h3>
<ul>
<!-- 循环value中的数据 定变量为v -->
<s:iterator value="#request.names" var="v">
<li>
<s:property value="#v"/>
</li>
</s:iterator>
</ul>
<!-- 判断request中的score属性是否大于80 -->
<s:if test="#request.score > 80">A</s:if>
<s:elseif test="#request.score > 60">B</s:elseif>
<s:else>C</s:else>
<h3 style="color: red;">表单标签</h3>
<h3>form</h3>
<h3>textfield</h3>
<h3>radio</h3>
<h3>select</h3>
<h3>textarea</h3>
<h3>hidden</h3>
<h3>submit</h3>
<s:form>
<s:textfield label="姓名" name="uname"/>
<%-- <s:radio list="{'男','女'}" label="性别" name="sex" value="'男'"/> --%>
<s:radio list="#{1:'男',2:'女' }" label="性别" name="sex" value="2"/>
<s:select headerKey="1" headerValue="请选择" label="所属部门" value="2" list="#{1:'财务部门',2:'公关部',3:'人事部' }" name="deptName"/>
<!-- 单选复选框,往后台传值是传布尔类型的 -->
<s:checkbox label="是否已婚" name="married"></s:checkbox>
<s:checkboxlist label="爱好" value="{1,3}" name="hobby" list="#{1:'篮球',2:'gay',3:'蹲坑' }" ></s:checkboxlist>
<s:textarea label="个人简介" name="remark" value="asdf"/>
<s:hidden name="asd" value="asdf"/>
</s:form>
</body>
</html>