2013第49周一jsp标签

今天在调试一些前台页面上的问题,在处理structs标签、jstl标签时遇到了些麻烦,为了调用后台数据字典中的类方法,开始在<c:forEach>中尝试怎么样都不行,后来知道要用<s:property>,于是把迭代又给位<s:iterator>,然后又因为在<s:iterator>、<s:if>中用了El表达式各种报错调试,最终浪费了近2小时左右时间,也算又深入理解了jsp相关的标签和表达式。

struts2的s:iterator 可以遍历 数据栈里面的任何数组,集合等等 以下几个简单的demo:
s:iterator 标签有3个属性:
value:被迭代的集合
id :指定集合里面的元素的id
status 迭代元素的索引

1:jsp页面定义元素写法 数组或list

  1. <s:iterator value="{'1','2','3','4','5'}" id='number'>
  2. <s:property value='number'/>A
  3. </s:iterator>

打印结果为: 1A2A3A4A5A

2:索引的用法
如果指定了status,每次的迭代数据都有IteratorStatus的实例,它有以下几个方法
int getCount()返回当前迭代了几个元素
int getIndex()返回当前元素索引
boolean isEven()当然的索引是否偶数
boolean isFirst()当前是否第一个元素
boolean isLast()
boolean isOdd()当前元素索引是否奇数

  1. <s:iterator value="{'a','b','c'}" id='char' status='st'>
  2. <s:if test="#st.Even">
  3. 现在的索引是奇数为:<s:property value='#st.index'/>
  4. </s:if>
  5. 当前元素值:<s:property value='char'/>
  6. </s:iterator>

3:遍历map
value可以直接定义为:

  1. value="#{"1":"a","2":"b"}"

每个元素以都好隔开。元素之间的key和value 冒号隔开
value也可以是数据栈里面的java.util.Map对象
遍历写法如下:

  1. <s:iterator value="map" id="id" status="st">
  2. key : <s:property value='key'/>
  3. value:<s:property vlaue='value'/>
  4. </s:iterator>

当然key 和value 都可以使java 的 Object

3:遍历数据栈.简单的List类,
List<Attr>
class Attr{String attrName;String getAttrName(){return "123";}}

  1. <s:iterator value="label" id="id">
  2. <s:property value="#id.attrName" />
  3. </s:iterator>

<c:out>标签的作用是用来显示表达式的值。它的作用是用来替代通过JSP内置对象out或者<%=%>标签来输出对象的值。
<c:out>标签的语法说明如下:
 
<c:out value="expression" default="expression" escapeXml="boolean"/>
 
<c:out>标签具有以下一些属性:
 
l value:用来定义需要求解的表达式。
 
l default:缺省值。当求解后的表达式为null或者String为空时将打印这个缺省值。
 
l escapeXML:这个属性是可选的。用于指定在使用<c:out>标记输出诸如“<”、“>;”和“&”之类的字符(在 HTML 和 XML 中具有特殊意义)时是否应该进行转义。如果将 escapeXml 设置为true,则会自动的进行编码处理。

<s:property />用法汇总
 
<li>1。访问值栈中的action的普通属性: username = <s:property value="username"/> </li>
 
<li>2. 访问值栈中对象的普通属性(get set方法):<s:property value="user.age"/> | <s:property value="user['age']"/> | <s:property value="user[\"age\"]"/> | wrong: <%--<s:property value="user[age]"/>--%></li>
 
<li>3。访问值栈中对象的普通属性(get set方法): <s:property value="cat.friend.name"/></li>
 
<li>4。访问值栈中对象的普通方法:<s:property value="password.length()"/></li>
 
<li>5. 访问值栈中对象的普通方法:<s:property value="cat.miaomiao()" /></li>
 
<li>6. 访问值栈中action的普通方法:<s:property value="m()" /></li>
 
<hr />
 
<li>7. 访问静态方法:<s:property value="@com.bjsxt.struts2.ognl.S@s()"/></li>
 
<li>8. 访问静态属性:<s:property value="@com.bjsxt.struts2.ognl.S@STR"/></li>
 
<li>9. 访问Math类的静态方法:<s:property value="@@max(2,3)" /></li>
 
<hr />
 
<li>10. 访问普通类的构造方法:<s:property value="new com.bjsxt.struts2.ognl.User(8)"/></li>
 
<hr />
 
<li>11. 访问List:<s:property value="users"/></li>
 
<li>12. 访问List中某个元素:<s:property value="users[1]"/></li>
 
<li>13. 访问List中元素某个属性的集合:<s:property value="users.{age}"/></li>
 
<li>14. 访问List中元素某个属性的集合中的特定值:<s:property value="users.{age}[0]"/> | <s:property value="users[0].age"/></li>
 
<li>15.访问Set:<s:property value="dogs"/></li>
 
<li>16.访问Set中某个元素:<s:property value="dogs[1]"/></li>
 
<li>17.访问Map:<s:property value="dogMap"/></li>
 
<li>18.访问Map中某个元素:<s:property value="dogMap.dog101"/> | <s:property value="dogMap['dog101']"/> | <s:property value="dogMap[\"dog101\"]"/></li>
 
<li>19.访问Map中所有的key:<s:property value="dogMap.keys"/></li>
 
<li>20.访问Map中所有的value:<s:property value="dogMap.values"/></li>
 
<li>21.访问容器的大小:<s:property value="dogMap.size()"/> | <s:property value="users.size"/> </li>
 
<hr />
 
<li>22.投影(过滤):<s:property value="users.{?#this.age==1}[0]"/></li>
 
<li>23.投影:<s:property value="users.{^#this.age>1}.{age}"/></li>
 
<li>24.投影:<s:property value="users.{$#this.age>1}.{age}"/></li>
 
<li>25.投影:<s:property value="users.{$#this.age>1}.{age} == null"/></li>
 
<hr />
 
<li>26.[]:<s:property value="[0].username"/></li>

2013第49周一jsp标签的更多相关文章

  1. java web学习总结(二十七) -------------------JSP标签介绍

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  2. javaweb学习总结(十九)——JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  3. 2013第39周一Web打印

    2013第39周一Web打印 项目中遇到了Java Web打印问题,简单调用IE浏览器的打印不能完全满足要求,于是就搜集了Web打印相关的主题,简单汇总一下.web打印难点在分页.页面纸张设置,页眉页 ...

  4. javaWeb学习总结(8)- JSP标签(6)

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  5. JSP标签c:forEach实例

    JSP标签c:forEach实例 1.实例源码 <%@ page language="java" import="java.util.*" pageEnc ...

  6. JavaWeb学习 (十八)————JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  7. javaweb(十九)——JSP标签

    一.JSP标签介绍 JSP标签也称之为Jsp Action(JSP动作)元素,它用于在Jsp页面中提供业务逻辑功能,避免在JSP页面中直接编写java代码,造成jsp页面难以维护. 二.JSP常用标签 ...

  8. jsp标签

    常规的jsp标签,导入如下 p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 13.0px Monaco; color: #3933ff } span.s1 ...

  9. 自定义JSP标签库及Properties使用

    自定义JSP标签库及Properties使用 自定义JSP标签 自定义JSP标签技术是在JSP 1.1版本中才出现的,它支持用户在JSP文件中自定义标签,这样可以使JSP代码更加简洁. 这些可重用的标 ...

随机推荐

  1. pthread_mutex_init & 互斥锁pthread_mutex_t的使用

    pthread_mutex_init l         头文件: #include <pthread.h> l         函数原型: int pthread_mutex_init( ...

  2. java开发经验分享(一)

    一. 编码 1. 约束自己,规范编码习惯 充足的代码注释.标准缩进的格式.注意命名规范.参考<开发管理规范> "看上去"专业能促进代码质量.越是难看的代码,在它的演化过 ...

  3. scp 对拷文件夹 和 文件夹下的所有文件 对拷文件并重命名

    对拷文件夹 (包括文件夹本身) scp -r   /home/wwwroot/www/charts/util root@192.168.1.65:/home/wwwroot/limesurvey_ba ...

  4. Android Studio:Unable to add window android.view.ViewRootImpl$W@5e2d85a -- permission denied for this window 第一行代码

    学习<第一行代码>的时候,出现的错误. java.lang.RuntimeException: Unable to start receiver com.example.sevenun.l ...

  5. html5+css3中的background: -moz-linear-gradient 用法 (转载)

    转载至-->http://www.cnblogs.com/smile-ls/archive/2013/06/03/3115599.html 在CSS中background: -moz-linea ...

  6. Laravel-高级篇-Artisan

    (慕课网_轻松学会Laravel-高级篇_天秤vs永恒老师_http://www.imooc.com/learn/702) 一.概述 Artisan是Laravel中自带的命令行工具的名称 由强大的S ...

  7. 关于时间的操作(JavaScript版)——依据不同区时显示对应的时间

    如今项目基本上告一段落了,难得有一定的闲暇,今天利用数小时完毕了一个功能模块--依据不同区时显示对应的时间,这方面网上基本没有现成的样例,如今将代码粘贴例如以下: <!DOCTYPE HTML ...

  8. [AngularJS] Angular 1.5 multiple transclude

    If you know ui-router, multi-transclude should be easy for you also. In previou Angular version < ...

  9. 寒哥细谈之AutoLayout全解

    文/南栀倾寒(简书作者)原文链接:http://www.jianshu.com/p/683fbcbfb705著作权归作者所有,转载请联系作者获得授权,并标注“简书作者”. 看到群中好多朋友还停留在Fr ...

  10. iphone开发 IOS 组织架构图

    转载自 :http://blog.csdn.net/mashi321323/article/details/18267719   登录|注册     mashi321323的专栏       目录视图 ...