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. hdu5017:补题系列之西安网络赛1011

    补题系列之西安网络赛1011 题目大意:给定一个椭球: 求它到原点的最短距离. 思路: 对于一个椭球的标准方程 x^2/a^2 + y^2/b^2 +z^2/c^2=1 来说,它到原点的最短距离即为m ...

  2. 【剑指offer】面试题44:扑克牌的顺子

    题目: LL今天心情特别好,因为他去买了一副扑克牌,发现里面居然有2个大王,2个小王(一副牌原本是54张^_^)...他随机从中抽出了5张牌,想测测自己的手气,看看能不能抽到顺子,如果抽到的话,他决定 ...

  3. 手游与App测试如何快速转型? —— 过来人科普手游与App测试四大区别

    随着智能设备的普及和移动互联网的兴起,各家互联网巨头纷纷在往移动端布局和转型,同时初创的移动互联网公司也都盯着这个市场希望分一杯羹.在这个大环境下,互联网的重心已经慢慢从Web端转向了移动端,而移动端 ...

  4. 合天网安实验室学习笔记----Linux基础

    一.Linux的发展 linux kernel的版本是:2.6.32-279.el6.x86_64,此格式为:主版本.次版本.释出版本-修改版本 次版本为奇数:测试版: 次版本为偶数:稳定版: Lin ...

  5. Sonar入门(五):使用 Sonar 进行代码质量管理

    Sonar 概述 Sonar 是一个用于代码质量管理的开放平台.通过插件机制,Sonar 可以集成不同的测试工具,代码分析工具,以及持续集成工具. 与持续集成工具(例如 Hudson/Jenkins ...

  6. openssl 证书请求和自签名命令req详解

    1.密钥.证书请求.证书概要说明 在证书申请签发过程中,客户端涉及到密钥.证书请求.证书这几个概念,初学者可能会搞不清楚三者的关系,网上有的根据后缀名来区分三者,更让人一头雾水.我们以申请证书的流程说 ...

  7. this函数的理解

    Javascript的this用法 this是Javascript语言的一个关键字. 它代表函数运行时,自动生成的一个内部对象,只能在函数内部使用.比如, function test(){ this. ...

  8. WebApi2官网学习记录---BSON

    BSON 是轻量级的,能够进行快速查询和高效的解码/编码.BSON方便查询是由于elements的前面都有一个表示长度的字段,所以解释器可以快速跳过这个elements:高效的解码/编码是因为nume ...

  9. wp8模拟器操作键盘

    当前焦点在模拟器上的某一个输入控件上时候, 按pagedown/pageup可以切换是用pc键盘还是模拟器键盘

  10. Homebrew -- Mac软件管家(套件管理yun……)

    也许是之前使用linux系统的时候总是习惯使用wget 在mac中只有curl,有点略显不习惯 于是乎某天在搜索mac开发者的时候发现了Homebrew这个东西 ok,是那么句话--惰性是人的天性 有 ...