zoukankan      html  css  js  c++  java
  • struts-tags通用标签基本用法

    2017-01-07

    16:02:46

    <s:debug></s:debug><!-- 标签库中实现的debug -->

    ${name }<!-- 是从对象栈中获取的 -->
    <br>
    <h4>欢迎${sessionScope.username }</h4>
    <br> 当前在线人数:${applicationScope.num }

    <a href="logout.do">logout</a>

    <br><br>


    <s:property value="[1].name"/><!-- 是从对象栈中获取的第二个对象的属性 -->
    <br><br>


    <s:property value="#session.username"/><!-- 是从ValueStack中的context属性中获取的,和用EL一样 -->
    <br><br>


    <s:property value="@model.Person@age"/><!-- 访问静态属性(直接就可以) -->
    <s:property value="@model.Person@setAge(11)"/><!-- 访问调用静态方法,需要在struts.xml中更改常量值 -->
    <s:property value="@model.Person@age"/>

    <h1>Tag</h1>


    <s:property value="[1].name"/>||<s:property value="name"/>
    <br><br>
    <s:property value="#session.username"/>
    <br><br>


    <s:url value="/test" var="url1">
    <s:param name="qq" value="111"></s:param>
    </s:url>
    <s:property value="url1"/>
    <br><br>
    <s:url value="test" var="url2">
    <s:param name="qq" value="112"></s:param>
    </s:url>
    <s:property value="url2"/>
    <br><br>
    <s:url action="test" var="url3">
    <s:param name="qq" value="113"></s:param>
    </s:url>
    <s:property value="url3"/>
    <br><br>
    <s:url action="test" method="save" var="url4">
    <s:param name="qq" value="114"></s:param>
    <s:param name="qqname" value="name"></s:param>
    <s:param name="qqname2" value="'name'"></s:param>
    </s:url>
    <s:property value="url4"/>
    <br><br>
    <s:url action="test" includeParams="all" namespace="/qq" var="url5">
    <s:param name="qq" value="115"></s:param>
    </s:url>
    <s:property value="url5"/>
    <br><br>


    <!-- if elseif if 同样它的值与值栈有联系(OGNL解析),会自动检测,若想关掉则在里面再添加单引号引住即可 -->
    <s:if test="name>10">
    大于10
    </s:if>
    <s:else>
    小于等于10
    </s:else>
    <br><br>


    <!-- 压入值栈 此标签开始时压入,标签结束即弹出-->
    <s:push value="url4">
    ${url4 }
    </s:push>
    <br><br>


    <!-- 访问参数 -->
    <s:property value="#parameters.qqname[0]"/>
    <br><br>


    <!-- 遍历集合,方便,每遍历一个就像压入值栈遍历完出栈,所以容易访问 -->
    <s:iterator value="[1].hm" status="qq">
    ${qq.index}-${qq.count }-${key }-${value }<br>
    </s:iterator>
    <br><br>


    <!-- 向域对象中放入属性,同样value与值栈关系紧密(OGNL解析),可以另加‘’避免 -->
    <s:set name="" value="" scope=""></s:set>

    <br><br>


    <!-- 排序,(对Map排序的方法) -->
    <%
    PersonComparator p = new PersonComparator();
    request.setAttribute("pp", p);
    %>
    <s:sort comparator="#request.pp" source="[1].hm" var="hm2"></s:sort>
    <s:iterator value="#attr.hm2" status="qq">
    ${qq.index}-${qq.count }-${key }-${value }<br>
    </s:iterator>
    <br><br>


    <!-- a标签 -->
    <s:iterator value="[1].hm" var="h">
    <!-- 可以用EL表达式 -->
    <a href="${url4}&key=${h.key}">${h.key }</a>
    </s:iterator>
    <s:iterator value="[1].hm" var="h">
    <!-- 不可以用EL表达式,但可以用%{}来强制进行OGNL转换 -->
    <s:a href="%{url4}&key=%{key}">${h.key }</s:a>
    </s:iterator>
    <br><br>

    <!-- 转换时间格式 -->
    <% Date d = new Date();request.setAttribute("date", d); %>
    <s:date name="#request.date" format="yyyy-MM-dd hh:mm:ss" var="date2"/>
    ${date2 }
    <br><br>

  • 相关阅读:
    cs ip 通过jmp转移命令间接赋值。无法直接对其赋值。
    8086 cpu为什么要把段地址*16+偏移量形成物理地址呢?
    保护模式和实模式的区别
    计算机的内存是以字节为单位的, 这个认知很重要。
    计算机的内存是以字节为单位的。
    一个字 word 是16位, 一个字由两个字节组成 , 字节=byte ,一个字节8位, 位=bit 如果没有特殊说明kb 就是指 k*bit
    物理地址为20位 如10000H 用段地址*16+偏移地址表示
    深入学习Java线程池
    在线考试系统镜像构建、推送、部署
    容器 变成镜像提交到阿里云镜像仓库
  • 原文地址:https://www.cnblogs.com/feifeiyun/p/6259613.html
Copyright © 2011-2022 走看看