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. Ubuntu 14.04 LTS中怎样安装fcitx中文输入法

    轉載: http://jingyan.baidu.com/article/4b07be3c60da3f48b380f3f0.html 一,安装fcitx,这么好的软件,ubuntu软件中心肯定是找得到 ...

  2. Elasticsearch的CRUD:REST与Java API

    CRUD(Create, Retrieve, Update, Delete)是数据库系统的四种基本操作,分别表示创建.查询.更改.删除,俗称"增删改查".Elasticsearch ...

  3. ASP.NET MVC5 ModelBinder

    什么是ModelBinding ASP.NET MVC中,所有的请求最终都会到达某个Controller中的某个Action并由该Action负责具体的处理和响应.为了能够正确处理请求,Action的 ...

  4. react-native ListView使用详解

    刚好今天七夕,呆萌的程序猿没有妹纸,刚好发小明天结婚,我还在异地,晚上还要苦逼的赶火车.趁着下午比较闲,更新一下Blog,也算是在百无聊赖之时给众多单身程序猿们的小福利吧,虽然已经好久没更了...囧 ...

  5. 【无私分享:ASP.NET CORE 项目实战(第十三章)】Asp.net Core 使用MyCat分布式数据库,实现读写分离

    目录索引 [无私分享:ASP.NET CORE 项目实战]目录索引 简介 MyCat2.0版本很快就发布了,关于MyCat的动态和一些问题,大家可以加一下MyCat的官方QQ群:106088787.我 ...

  6. 企业IT架构介绍

    企业信息化之路 问题   互联互通   统一访问 统一身份管理 数据管理模型 企业数据集成业务架构 业务流程框架 业务流程模型 个性流程支持 跨业务的业务流程组合 EBS总线 ] SOA架构上视图 B ...

  7. 《连载 | 物联网框架ServerSuperIO教程》- 11.实现设备(驱动)与设备(驱动)交互和级联控制。注:设备驱动模拟金三与普京的对话

    1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...

  8. Atitit Atitit.软件兼容性原理----------API兼容 Qa7

    Atitit Atitit.软件兼容性原理----------API兼容 Qa7 1. 兼容性的重要性与反面教材1 2. 提升兼容性的原则2 2.1. What 与how 分离2 2.2. 老人老办法 ...

  9. 《C#开发常用免费WebServices集合》

    天气预报 Web服务,数据来源于中国气象局 公用事业 http://www.webxml.com.cn/WebServices/WeatherWebService.asmx 中国股票行情 分时走势预览 ...

  10. Android中使用Notification实现普通通知栏(Notification示例一)

    Notification是在你的应用常规界面之外展示的消息.当app让系统发送一个消息的时候,消息首先以图表的形式显示在通知栏.要查看消息的详情需要进入通知抽屉(notificationdrawer) ...