struts标签

struts标签
一 通用标签
<1> 数据标签
1. property标签
用于获取一个值的属性,value属性如果没有指定,默认为堆栈顶端的元素.

       <s:property value="result"/> <!--  输出result属性的值 -->
  1. 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属性值 -->
    
    1. push标签 可用于修改页面
      push值到堆栈中,方便应用.push标签表示弹栈,标签体中即可拿到弹栈内容,结束标签回归原样(
      即弹栈之前的内容)
      属性:value 要push到堆栈中的值

      <s:property/>  <!-- 弹栈前默认值(即ValueStack栈顶的值) -->
       <!-- push表示弹栈,标签体中即可拿到弹栈内容,结束标签回归原样(即弹栈之前的内容) -->
       <s:push value="result"> 
       <s:property/><!--200 -->
      </s:push>
      <s:property/><!-- 默认的栈顶值 -->
      
    2. action 标签
      通过指定命名空间和action名称 ,向后台请求数据,加载初始化数据使用
      属性:name action名称
      namespace 名称空间
      var 将值保存到上下文(ActionContext)中的一个key

       <s:action name="tagAction" namespace="/sy" var="test2"></s:action>
       <s:property value="#test2.cal2"/>
      
    3. 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 非表单标签

  1. 标签的属性类型说明
    String 字符串
    Boolean true|false
    Object
    Object/String 传过去字符串,但会被认为是一个OGNL表达式进行计算

    %{str}:str会被强制转换成OGNL表达式计算
    <s:a href="%{#url1}">bbb</s:a>

  2. 标签的公共属性
    var 将值保存到上下文(ActionContext)中的一个key