重点
1、value表达式讲解(与c标签作比较)
2、set中var没有放到值栈中
3、action 再发一次请求 是为了调后台模块代码,拿数据
4、url 没有发请求,只为了生成url链接地址
%{str}:str会被强制转换成OGNL表达式计算
以上最最重要的是通过debug标签去拿值
<body>
<h3 style="color: red;">数据标签</h3>
<h3>set</h3>
<!-- value里面放的是ognl的表达式 实际是集合(ognl上下文)的key
在ognl上下文的根对象中取result的值 赋给test1
-->
<s:set var="test1" value="result"></s:set>
${test1 },${requestScope.test1}
<h3>property</h3>
<!--取栈顶 cal1(modelDriven)-->
<s:property/>,
<!-- 取跟对象的最上面的属性num1 -->
<s:property value="num1"/>,
<!--cal2是 TagAction里面的根对象 取跟对象cal2中num属性 -->
<s:property value="cal2.num1"/>
<h3>push</h3>
<s:property/>
<!--弹栈 将需要的值放到栈顶便于页面获取 把result的值即 250谈到栈顶中 -->
<s:push value="result">
<s:property/>
</s:push>
<s:property/>
<h3>重点action</h3>
<!-- action通常用来请求后台,获取初始化的数据 有var的一般为非根对象(非根取值要用#) -->
<s:action name="tagAction" namespace="/sy" var="test2"></s:action>
<s:property value="#test2.cal2"/>
<h3>url</h3>
<!-- url标签是为了生成地址所用的,注意与a标签区分 -->
<s:url namespace="/sy" action="tagAction" var="test3"></s:url>
<s:property value="#test3"/>
<a href='<s:property value="#test3"/>'>xxxxxx</a>
<s:a href="#test3">aaaa></s:a>
<!-- 将其转化为ognl表达式 %{} -->
<s:a href="%{#test3}">bbbb></s:a>
<h3>param</h3>
<!-- 带参数 有两种赋值方式
①:ognl表达式
②:字符串
-->
<s:url namespace="/sy" action="tagAction" var="test4">
<s:param name="test5">aaa</s:param>
<s:param name="test6" value="num1">cccc</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[]{"aa","bb","cc"});
%>
<s:date name="#request.currentDate" format="yyyy-MM-dd"/>
<h3>debug</h3>
<s:debug/>
<h3 style="color: red;">控制标签</h3>
<h3>iterator/if/elseif/else</h3>
<ul>
<s:iterator var="v" value="#request.names">
<li>
<s:property value="#v"/>
</li>
</s:iterator>
</ul>
<s:if test="#request.score>80">
A
</s:if>
<s:elseif test="#request.score>60">
B
</s:elseif>
<s:else>
C
</s:else>
</body>
crud详细讲解
表单标签
form
textfield
radio
select
textarea
hidden
submit
<s:form namespace="" action="">
<s:textfield name="uname" label="姓名"></s:textfield>
<s:radio name="sex" list="{'男','女' }" label="性别" value="'男'"></s:radio>
<%-- <s:radio name="sex" list="#{1:'男',2:'女' }" label="性别" value="2"></s:radio> --%>
<s:select name="deptName" list="#{1:'财务部',2:'后勤部',3:'人事部' }" label="部门选择" />
<!-- 单选复选框,往后台传值是传boolean类型 -->
<s:checkbox name="married" label="是否已婚"/>
<s:checkboxlist name="hobby" label="爱好" list="#{1:'篮球',2:'攀岩',3:'时尚' }"></s:checkboxlist>
<s:textarea name="remark" label="个人简介"/>
<s:hidden name="xxx" value="曾经的我们是那么的单纯"/>
</s:form>
```