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>

struts-tags通用标签基本用法的更多相关文章

  1. struts tags

    HTTP ERROR 500 Problem accessing /showognl.jsp. Reason: Server Error Caused by: org.apache.jasper.Ja ...

  2. This is usually caused by using Struts tags without the associated filter. Struts tags are only usable when the request has p

    2014-09-16 15:47:51.590:WARN:oejs.ErrorPageErrorHandler:EXCEPTION org.apache.jasper.JasperException: ...

  3. The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter. 异常

    异常信息如下: The Struts dispatcher cannot be found. This is usually caused by using Struts tags without t ...

  4. The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the associated filter.

    The Struts dispatcher cannot be found. This is usually caused by using Struts tags without the assoc ...

  5. 有关struts中DispatchAction的用法小结

       今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...

  6. 配置struts tags 输出HTML

    <s:property escape="false" value="vaMsg"/> escape="false"则vaMsg内 ...

  7. [struts2]struts结合ECharts的用法

    <script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script> < ...

  8. Struts bean:define标签用法

    bean:define:有三个用途 一是定义新字符串常量: <bean:define id="foo" value="This is a new String&qu ...

  9. Struts tags--Data tags

      struts tags详解之<s:bean> Description     Bean标签,当然需要一个JavaBean.它的属性值的操作是经由Bean标签中的参数属性来进行赋值.当然 ...

随机推荐

  1. 在数据库访问项目中使用微软企业库Enterprise Library,实现多种数据库的支持

    在我们开发很多项目中,数据访问都是必不可少的,有的需要访问Oracle.SQLServer.Mysql这些常规的数据库,也有可能访问SQLite.Access,或者一些我们可能不常用的PostgreS ...

  2. mysql substring函数截取值后赋给一个declare变量

    今天写的一个mysql存储过程涉及到对一个传入参数的字符串截取,然后需要判断截取字符串进行一系列操作,最开始用select  subtring() into 这样的方法将截取值赋于declare变量直 ...

  3. 明显调用的表达式前的括号必须具有(指针)函数类型 编译器错误 C2064

    看到“明显调用的表达式前的括号必须具有(指针)函数类型”这句时我才发现我的语文水平有多烂,怎么看都看不懂,折腾了半天才知道是哪里出了问题. 举个简单的例子 class CTest { void (CT ...

  4. Java微信公众平台接口封装源码分享

    前言:      这篇博客是在三月初动手项目的时候准备写的,但是为了完成项目只好拖延时间写这篇博客,顺便也可以在项目中应用我自己总结的的一些经验.今天看来,这些方法的应用还是可以的,至少实现了我之前的 ...

  5. autofac 组件的实例范围

    实例范围决定如何在请求之间共享服务. 原文地址:http://docs.autofac.org/en/latest/lifetime/instance-scope.html 每个依赖一个实例 使用这个 ...

  6. SpringMVC类型转换器、属性编辑器

    对于MVC框架,参数绑定一直觉得是很神奇很方便的一个东西,在参数绑定的过程中利用了属性编辑器.类型转换器 参数绑定流程 参数绑定:把请求中的数据,转化成指定类型的对象,交给处理请求的方法 请求进入到D ...

  7. 关于Karaf Container 4.0.7

            Karaf是Apache旗下的一个开源项目.Karaf同时也是一个基于OSGi的运行环境,Karaf提供了一个轻量级的OSGi容器,可以用于部署各种组件,应用程序.Karaf提供了很多 ...

  8. 关于css3的背景渐变

    关于css3的渐变,目前各大浏览器还未做到很好的支持,所以需要在我们使用时加上各大浏览器前缀. -moz-:使用Mozilla内核的浏览器(Firefox浏览器) -webkit-:使用Webkit内 ...

  9. 大数据下BI产品如何发挥最大价值

    看到这个题目,你是否总感觉云里雾里?你是否真正懂什么叫“大数据”?商业智能BI和大数据又有着什么千丝万缕的联系?为什么说商业智能BI能在大数据中发挥价值? 大数据,指的是所涉及的数据资料量规模巨大到无 ...

  10. SQL初级语句

    一)SQL是什么? 结构化查询语言(Structured Query Language)简称SQL, 是一种特殊目的的编程语言,是一种数据库查询和程序设计语言,用于存取数据以及查询.更新和管理关系数据 ...