struts2中 # % $ (井号,星号,百分号)的区别和用法
2015-10-30 11:06
686 查看
#”主要有三种用途:
1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:
名称 作用 例子
parameters 包含当前HTTP请求参数的Map #parameters.id[0]作用相当于request.getParameter("id")
request 包含当前HttpServletRequest的属性(attribute)的Map #request.userName相当于request.getAttribute("userName")
session 包含当前HttpSession的属性(attribute)的Map #session.userName相当于session.getAttribute("userName")
application 包含当前应用的ServletContext的属性(attribute)的Map #application.userName相当于application.getAttribute("userName")
attr 用于按request > session > application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止
2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100};
3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
<s:iterator begin=“1” end="10" var="num">
<s:if test="#num==currentPage">
.......
</s:iterator>
var的对象在map中
“%”的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码:
在OGNL表达式的属性中需要使用"%{#对象.属性}获取对象属性值#表示从map中取对象
在jsp标签中使用%{#对象.属性}
<hr />
<h3>%的用途</h3>
<p><s:url value="#foobar['foo1']" /></p>
<p><s:url value="%{#foobar['foo1']}" /></p>
<form action="add?%{#foobar.id}">
“$”有两个主要的用途 :
$用于EL表达式
<a href="#"> $(name)</a>
1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》
2. 在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack" />
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
例如: Struts2 在标签的ID属性中 获取 索引:
<s:iterator value="userList" status="u">
<s:hidden id="%{u.index }" value="%{name }"></s:hidden>
<s:hidden id="%{u.index }" value="%{sex }"></s:hidden>
</s:iterator>
//注意:
//Struts2标签与内部标签之间元素互用使用%{u.index }或者%{#u.index },比如:<s:iterator>
与<s:a>
//Struts2标签与外部标签元素互用则使用 ${#u.index } 比如:<s:iterator>与<a>
1. 访问OGNL上下文和Action上下文,#相当于ActionContext.getContext();下表有几个ActionContext中有用的属性:
名称 作用 例子
parameters 包含当前HTTP请求参数的Map #parameters.id[0]作用相当于request.getParameter("id")
request 包含当前HttpServletRequest的属性(attribute)的Map #request.userName相当于request.getAttribute("userName")
session 包含当前HttpSession的属性(attribute)的Map #session.userName相当于session.getAttribute("userName")
application 包含当前应用的ServletContext的属性(attribute)的Map #application.userName相当于application.getAttribute("userName")
attr 用于按request > session > application顺序访问其属性(attribute) #attr.userName相当于按顺序在以上三个范围(scope)内读取userName属性,直到找到为止
2. 用于过滤和投影(projecting)集合,如books.{?#this.price<100};
3. 构造Map,如#{'foo1':'bar1', 'foo2':'bar2'}。
<s:iterator begin=“1” end="10" var="num">
<s:if test="#num==currentPage">
.......
</s:iterator>
var的对象在map中
“%”的用途是在标志的属性为字符串类型时,计算OGNL表达式的值。例如在Ognl.jsp中加入以下代码:
在OGNL表达式的属性中需要使用"%{#对象.属性}获取对象属性值#表示从map中取对象
在jsp标签中使用%{#对象.属性}
<hr />
<h3>%的用途</h3>
<p><s:url value="#foobar['foo1']" /></p>
<p><s:url value="%{#foobar['foo1']}" /></p>
<form action="add?%{#foobar.id}">
“$”有两个主要的用途 :
$用于EL表达式
<a href="#"> $(name)</a>
1. 用于在国际化资源文件中,引用OGNL表达式,例子请参考《在Struts 2.0中国际化(i18n)您的应用程序》
2. 在Struts 2配置文件中,引用OGNL表达式,如
<action name="AddPhoto" class="addPhoto">
<interceptor-ref name="fileUploadStack" />
<result type="redirect">ListPhotos.action?albumId=${albumId}</result>
</action>
<s:text>是Struts2用来显示资源文件中信息或格式化数据时使用的,一般要配合<s:i18n>标签. <s:textfield>是文本框,对应的<input type="text">
例如: Struts2 在标签的ID属性中 获取 索引:
<s:iterator value="userList" status="u">
<s:hidden id="%{u.index }" value="%{name }"></s:hidden>
<s:hidden id="%{u.index }" value="%{sex }"></s:hidden>
</s:iterator>
//注意:
//Struts2标签与内部标签之间元素互用使用%{u.index }或者%{#u.index },比如:<s:iterator>
与<s:a>
//Struts2标签与外部标签元素互用则使用 ${#u.index } 比如:<s:iterator>与<a>
相关文章推荐
- java按引用传递值
- jsp 和 java 文件的绝对/相对路径问题
- maven 更改compile版本至java 1.7,添加第三方jar包
- Java设计模式----责任链模式(Chain of Responsibility)
- Java设计模式----责任链模式(Chain of Responsibility)
- Java抽象类和接口的区别
- 已经是GBK编码的Eclipse写的项目 如何转到UTF8而不乱码
- Java学习之面向对象三大特征通俗理解
- java 遍历arrayList的四种方法
- Spring4+SpringMVC+Hibernate4+MySQL5项目搭建
- Java 悲观锁和乐观锁的实现
- Spring MVC+mybatis 环境搭建,总结
- Java 按字节获得字符串(中文)长度
- JAVA语法-java.util.Date和java.sql.Date的区别及应用
- java 常用的东西
- C与java的区别
- JAVA 操作xml的方法
- java.io.File中的绝对路径和相对路径
- java.io.File中的绝对路径和相对路径
- 凯撒密码的java实现