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. git常用操作命令

    使用git进行版本控制,分为两部分: 一: 服务端 1.1 首先要申请一个git的账号,方便团队协作.推荐开源中国(www.oschina.net),相对于github来说,有两个优点:1.访问速度很 ...

  2. 【基于WPF+OneNote+Oracle的中文图片识别系统阶段总结】之篇三:批量处理后的txt文件入库处理

    篇一:WPF常用知识以及本项目设计总结:http://www.cnblogs.com/baiboy/p/wpf.html 篇二:基于OneNote难点突破和批量识别:http://www.cnblog ...

  3. MIS性能优化常见问题与方案(辅助项目组性能优化的总结贴)

    最近帮忙公司的几个项目组进行了不同方面的性能优化,发现几个项目都出现了一些共性的问题.这里写一篇文章,总结一下这几类问题,以及其对应的解决方案.方便其它项目组参考.   常见问题一:打开页面非常慢,有 ...

  4. CatchPacket网络抓包软件

    CatchPacket网络抓包软件  qq  22945088431.技术特点:基于WinPcap库,c# winform2.实现获取机器所有网卡,可任意选择监听3.可以捕获常见网络协议arp dns ...

  5. 使用Eclipse创建Maven Web工程

    方法/步骤 1 使用Eclipse创建Maven Web工程 2 找到Maven Project,点击Next 3 勾选上Create a simple project (不使用骨架),Next 4 ...

  6. Java第三方数据库连接池库-DBCP-C3P0-Tomcat内置连接池

    连接池原理 数据库连接池的基本思想就是为数据库连接建立一个“缓冲池”.预先在缓冲池中放入一定数量的连接,当需要建立数据库连接时,只需从“缓冲池”中取出一个,使用完毕之后再放回去.我们可以通过设定连接池 ...

  7. Console.In.ReadToEnd() 控制台 输入完毕

    输入完数据后 按回车(另起一行) ctrl+z enter .......百度了半天 没百度到..最后还是google 强大..解决了问题 ..

  8. 如何判断一个DOM元素正在动画,一个CSS“阻塞”JS的例子

    一般情况下CSS不会直接影响JS的程序逻辑,但是以CSS实现动画的话,这个便不太确定了,这个故事发生在与UED迁移全局样式的过程. 曾经我有一段实现弹出层隐藏动画的代码是这个样子的: if (this ...

  9. json简单使用

    web工程中如何将大量数据从服务器端传送到浏览器一直是很重要的一个问题. 其中一个解决方法是在服务器端将将数据封装成json格式,然后传给前台.废话不多说,下面讲干货. 1.要用json必须下载一个库 ...

  10. IOS开发基础知识--碎片50

      1:Masonry 2个或2个以上的控件等间隔排序 /** * 多个控件固定间隔的等间隔排列,变化的是控件的长度或者宽度值 * * @param axisType 轴线方向 * @param fi ...