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>
struts-tags通用标签基本用法的更多相关文章
- struts tags
HTTP ERROR 500 Problem accessing /showognl.jsp. Reason: Server Error Caused by: org.apache.jasper.Ja ...
- 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: ...
- 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 ...
- 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 ...
- 有关struts中DispatchAction的用法小结
今天刚刚看了DispatchAction觉得这个东西有点意思,所以就写点东西,通过它的名字我想应该可以明白它的作用了,用于分发的Action,主要的好处是把一些功能类似的Action放到一个Ac ...
- 配置struts tags 输出HTML
<s:property escape="false" value="vaMsg"/> escape="false"则vaMsg内 ...
- [struts2]struts结合ECharts的用法
<script src="http://echarts.baidu.com/build/dist/echarts-all.js"></script> < ...
- Struts bean:define标签用法
bean:define:有三个用途 一是定义新字符串常量: <bean:define id="foo" value="This is a new String&qu ...
- Struts tags--Data tags
struts tags详解之<s:bean> Description Bean标签,当然需要一个JavaBean.它的属性值的操作是经由Bean标签中的参数属性来进行赋值.当然 ...
随机推荐
- 如何写复杂的SQL
经常有人问我那非常复杂的sql是怎么写出来的,我一直不知道该怎么回答. 因为虽然我写这样的sql很顺手,可是我却不知道怎么告诉别人怎么写. 很多人将这个问题归结为天赋,我却不这么看,我 ...
- 从零开始学 Java - Spring 集成 Memcached 缓存配置(二)
Memcached 客户端选择 上一篇文章 从零开始学 Java - Spring 集成 Memcached 缓存配置(一)中我们讲到这篇要谈客户端的选择,在 Java 中一般常用的有三个: Memc ...
- ubuntu 入门
ubuntu 系统设置不全sudo apt-get install ubuntu-desktop uget aria2:下载工具http://www.xitongzhijia.net/xtjc/201 ...
- C#的委托
之前本人一直在写一些相对比较基础的C#代码,现在做了一段时间项目了,遇到更麻烦的问题,比如今天要讨论的委托和事件,这个算是C#进阶篇的内容吧.现在自己就把这些天所学习的和自己所理解的和大家分享.有错请 ...
- Java工程师成神之路
学习Java的同学注意了!!! 学习过程中遇到什么问题或者想获取学习资源的话,欢迎加入Java学习交流群,群号码:279558494 我们一起学Java! 一.基础篇 1.1 JVM 1.1.1. J ...
- java重载与覆写
很多同学对于overload和override傻傻分不清楚,建议不要死记硬背概念性的知识,要理解着去记忆. 先给出我的定义: overload(重载):在同一类或者有着继承关系的类中,一组名称相同,参 ...
- 【移动前端开发实践】从无到有(统计、请求、MVC、模块化)H5开发须知
前言 不知不觉来百度已有半年之久,这半年是996的半年,是孤军奋战的半年,是跌跌撞撞的半年,一个字:真的是累死人啦! 我所进入的团队相当于公司内部创业团队,人员基本全部是新招的,最初开发时连数据库都没 ...
- CRM sql 查询
转自博友"菜刀-soft"! 查询实体信息: --查询实体信息,实体名称:account select * from MetadataSchema.Entity where nam ...
- iOS 开发者账号到期续费流程
1.登录developer.apple.com,查看到期时间 2.到期提醒通知,点击Renew Membership续费(一般提前一个月提醒续费) 3.个人开发者账号续费需要支付 688人民币/年(9 ...
- 分别用ToolBar和自定义导航栏实现沉浸式状态栏
一.ToolBar 1.在build.gradle中添加依赖,例如: compile 'com.android.support:appcompat-v7:23.4.0' 2.去掉应用的ActionBa ...