zoukankan      html  css  js  c++  java
  • Struts学习笔记_Tags

    1.通用标签:

      a)         property

      b)         set

                             i.              默认为action scope,会将值放入request和ActionContext中

                           ii.              page、request、session、application

      c)         bean

      d)         include(对中文文件支持有问题,不建议使用,如需包含,改用jsp包含)

      e)         param

      f)          debug

    2.控制标签

      a)         if elseif else

      b)         iterator

                             i.              collections map enumeration iterator array

      c)         subset

    3.UI标签

      a)         theme

                             i.              simple xhtml(默认) css_xhtml ajax

    4.AJAX标签

      a)         补充

    5.$ # %的区别

      a)         $用于i18n和struts配置文件

      b)         #取得ActionContext的值

      c)         %将原本的文本属性解析为ognl,对于本来就是ognl的属性不起作用

                             i.              参考<s:property 和 <s:include

    <body>
        <ol>
            <li>property: <s:property value="username"/> </li>
            <li>property 取值为字符串: <s:property value="'username'"/> </li>
            <li>property 设定默认值: <s:property value="admin" default="管理员"/> </li>
            <li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>
            <hr />
            <li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li> /username是ognl表达式,若传参为username=u,则value为u 
            
            <li>set 从request取值: <s:property value="#request.adminName" /></li>
            <li>set 从ActionContext取值: <s:property value="#adminName" /></li>
            
            <%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li>
            <li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>
            --%>
            <li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li>
            <li>set 使用#取值: <s:property value="#adminPassword"/> </li>
            <li>set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>
            
            <hr />
            
            <%--<li>push:<s:set name="myDog" value="new com.bjsxt.struts2.ognl.Dog('oudy')"></s:set></li>
            <li>
            push:<s:push value="#myDog">
                <s:property value="name"/>
            </s:push>
            </li>
            <li>push: <s:property value="name"/></li>
            --%>
            
            <hr />
            <li>bean 定义bean,并使用param来设定新的属性值:(s:bean开始时会new对象值存入值栈栈顶,标签结束后会从栈里拿走)
                <s:bean name="com.bjsxt.struts2.tags.Dog" >
                    <s:param name="name" value="'pp'"></s:param>
                    <s:property value="name"/>
                    
                </s:bean>
                
                
            </li>
            
            <li>bean 查看debug情况:
                <s:bean name="com.bjsxt.struts2.tags.Dog" var="myDog">
                    <s:param name="name" value="'oudy'"></s:param>
                </s:bean>
                拿出值:
                <s:property value="#myDog.name"/>
                
            </li>
            <hr />
            
            <li>include _include1.html 包含静态英文文件
            <s:include value="/_include1.html"></s:include>
            </li>
            
            <li>include _include2.html 包含静态中文文件
            <s:include value="/_include2.html"></s:include>
            </li>
            
            <li>include _include1.html 包含静态英文文件,说明%用法
            <s:set var="incPage" value="%{'/_include1.html'}" /> //等同于<s:set var="incPage" value="'/_include1.html'" />
            <s:include value="%{#incPage}"></s:include>//%{}把里面的内容强制转换为ognl表达式
            </li>
            
            
            <hr />
            
            <li>if elseif else: 
            age = <s:property value="#parameters.age[0]" /> <br />
            <s:set var="age" value="#parameters.age[0]" />
            <s:if test="#age < 0">wrong age!</s:if>
            <s:elseif test="#parameters.age[0] < 20">too young!</s:elseif>
            <s:else>yeah!</s:else><br />
            
            <s:if test="#parameters.aaa == null">null</s:if>
            </li>
            
            <hr />
            
            <li>遍历集合:<br />
            <s:iterator value="{1, 2, 3}" >
                <s:property/> |
            </s:iterator>
            </li>
            <li>自定义变量:<br />
            <s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x">
                <s:property value="#x.toUpperCase()"/> |
            </s:iterator>
            </li>
            <li>使用status:<br />
            <s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status">
                <s:property/> | 
                遍历过的元素总数:<s:property value="#status.count"/> |
                遍历过的元素索引:<s:property value="#status.index"/> |
                当前是偶数?:<s:property value="#status.even"/> |
                当前是奇数?:<s:property value="#status.odd"/> |
                是第一个元素吗?:<s:property value="#status.first"/> |
                是最后一个元素吗?:<s:property value="#status.last"/>
                <br />
            </s:iterator>
            
            </li>
            
            <li>
            <s:iterator value="#{1:'a', 2:'b', 3:'c'}" >
                <s:property value="key"/> | <s:property value="value"/> <br />
            </s:iterator>
            </li>
            
            <li>
            <s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x">
                <s:property value="#x.key"/> | <s:property value="#x.value"/> <br />
            </s:iterator>
            </li>
            
            <li>
            
            <s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror>
            
            </li>
        </ol>
        
        
        
        
    </body>

    定义自己的theme

    1. css(覆盖struts2原来的css)
    2. 覆盖单个文件
    3. 定义自己的theme
    4. 实战:

        a)         把所有主题定义为simple

        b)         fielderror特殊处理

        c)         自己控制其他标签的展现

     

  • 相关阅读:
    yii2权限控制rbac之rule详细讲解
    yii2权限控制rbac之详细操作步骤
    安装 Autoconf, Automake & Libtool
    Linux查看物理CPU个数、核数、逻辑CPU个数
    Nginx端口占用问题
    Druid加密
    Ubuntu16.04安装Zabbix3.2(快速安装教程)
    飞冰ICE
    BeiDou开源项目
    Arthas开源项目
  • 原文地址:https://www.cnblogs.com/enjoy-life-clh/p/4085797.html
Copyright © 2011-2022 走看看